|
|

楼主 |
发表于 2023-3-16 20:06
|
显示全部楼层
代码
- <style>
- #clock {
- margin: 50px auto;
- width: 200px;
- height: 200px;
- background: lightgreen;
- box-shadow: 0 0 40px black inset, 0 0 60px snow inset;
- filter: drop-shadow(0 0 20px #000);
- border-radius: 50%;
- border: 8px solid black;
- display: grid;
- place-items: center;
- position: relative;
- cursor: pointer;
- opacity: .8;
- --state: paused;
- }
- #clock::before, #clock::after {
- position: absolute;
- content: '';
- width: 6px;
- height: 98px;
- }
- #clock::after {
- --deg: 360deg;
- bottom: 50%;
- background: green;
- opacity: .75;
- transform-origin: 50% 100%;
- animation: rot var(--time) infinite linear var(--state);
- }
- #clock::before {
- --deg: 15deg;
- top: 50%;
- background: black;
- transform: rotate(-15deg);
- transform-origin: 50% 0;
- animation: rot .5s infinite alternate linear var(--state);
- }
- #clock > span {
- position: absolute;
- width: 15px;
- height: 15px;
- border-radius: 50%;
- background: black;
- z-index: 2;
- }
- #clock > span:nth-of-type(2) {
- top: -7px;
- width: 6px;
- height: 6px;
- background: lightgreen;
- }
- @keyframes rot {
- to {transform: rotate(var(--deg)); }
- }
- </style>
- <div id="clock">00:00 00:00<span></span><span></span></div>
- <audio id="aud" src="https://music.163.com/song/media/outer/url?id=5237700" loop autoplay></audio>
- <script>
- let toMin = (val) => {if (!val) return '00:00';val = Math.floor(val);let min = parseInt(val / 60),sec = parseFloat(val % 60);if (min < 10) min = '0' + min;if (sec < 10) sec = '0' + sec;return min + ':' + sec;};
- clock.addEventListener('click', () => aud.paused ? aud.play() : aud.pause());
- aud.addEventListener('play', () => clock.style.setProperty('--state','running'));
- aud.addEventListener('pause', () => clock.style.setProperty('--state','paused'));
- aud.addEventListener('canplay', () => clock.style.setProperty('--time',aud.duration + 's'));
- aud.addEventListener('timeupdate', () => clock.innerHTML = toMin(aud.currentTime) + ' ' + toMin(aud.duration) + '<span></span><span></span>');
- </script>
复制代码
|
|