|
|

楼主 |
发表于 2022-6-2 17:46
|
显示全部楼层
- <style>
- .outer {
- left: -20px;
- width: 800px;
- height: 560px;
- background: #ccc linear-gradient(black,transparent,teal);
- box-shadow: 3px 3px 4px #333;
- display: flex;
- position: relative;
- }
- .outer meter {
- position: absolute;
- width: 100px;
- bottom: 60px;
- left: -20px;
- transform: rotate(-90deg);
- cursor: pointer;
- }
- .moon {
- margin: auto;
- width: 100px;
- height: 100px;
- border-radius: 50%;
- background: transparent;
- box-shadow: 20px 20px 0 0 gold;
- cursor: pointer;
- }
- .star {
- position: absolute;
- width: 2px;
- height: 2px;
- background: #eee;
- display: block;
- animation: flash 1s linear infinite;
- }
- @keyframes flash {
- from { opacity: 1; }
- to { opacity: 0; }
- }
- </style>
- <div class="outer">
- <div class="moon"></div>
- <meter id="meter" min="0" max="100" low="33" high="66" optimum="80" value="0"></meter>
- </div>
- <audio id="aud" src="https://music.163.com/song/media/outer/url?id=212412.mp3" autoplay="autoplay" loop="loop"></audio>
- <script>
- let outer = document.querySelector('.outer'),
- moon = document.querySelector('.moon'),
- aud = document.querySelector('#aud'),
- meter = document.querySelector('#meter');
- let num = (min,max) => Math.floor(Math.random() * (max-min+1)) + min;
- Array.from({length: 200}).forEach((ele) => {
- ele = document.createElement('span');
- ele.className = 'star';
- ele.style.left = num(2,798) + 'px';
- ele.style.top = num(2,200) + 'px';
- ele.style.animationDelay = Math.random() * 1.5 + 's';
- outer.appendChild(ele);
- })
- moon.onclick = meter.onclick = () => aud.paused ? aud.play() : aud.pause();
- aud.addEventListener('timeupdate',()=> {
- let prog = 100 * aud.currentTime / aud.duration;
- let deg = prog * 180 / 100 + 90; // 转半圈:从左中开始
- moon.style.transform = 'rotate(' + deg + 'deg) ' + 'translateY(200px) rotate(-' + deg + 'deg)';
- meter.value = prog;
- });
- </script>
复制代码
|
评分
-
| 参与人数 1 | 威望 +50 |
金钱 +100 |
经验 +50 |
收起
理由
|
红影
| + 50 |
+ 100 |
+ 50 |
赞一个! |
查看全部评分
|