|
|

楼主 |
发表于 2024-1-19 08:19
|
显示全部楼层
代码
- <style>
- #papa { margin: 0 0 0 calc(50% - 593px); width: 1024px; height: 640px; background: url('https://638183.freep.cn/638183/t24/jpg/tsd.jpg') no-repeat center/cover; box-shadow: 3px 3px 20px #000; position: relative; overflow: hidden; pointer-events: none; z-index: 1; }
- #papa::before, #papa::after { position: absolute; content: ''; width: 200px; height: 200px; border-radius: 50%; filter: hue-rotate(var(--hue)) opacity(.95); transition: .75s; pointer-events: auto; }
- #papa::before { left: 160px; top: 240px; background: linear-gradient(-225deg, #231557 0%, #44107A 29%, #FF1361 67%, #FFF800 100%); }
- #papa::after { left: 240px; top: 300px; background: linear-gradient(to right, #e4afcb 0%, #b8cbb8 0%, #b8cbb8 0%, #e2c58b 30%, #c2ce9c 64%, #7edbdc 100%); }
- #papa:hover::before, #papa:hover::after { cursor: pointer; transform: scale(.5); }
- li-zi { position: absolute; width: 20px; height: 20px; border-radius: 50% 0; filter: hue-rotate(var(--hue)); }
- @keyframes moving {
- from { opacity: 0; transform: translate(0,0) rotate(2turn); }
- to { opacity: 1; transform: translate(var(--x0),var(--y0)); }
- }
- </style>
- <div id="papa" title="播放/暂停"></div>
- <audio id="aud" src="https://music.163.com/song/media/outer/url?id=1201611" autoplay loop></audio>
- <script>
- (function() {
- let all = 70;
- for(let i = 0; i < all; i++) {
- let lz = document.createElement('li-zi');
- let hudu = Math.PI / 180 * 360 / all * i;
- let xx = 600 * Math.cos(hudu), yy = 600 * Math.sin(hudu);
- lz.style.cssText += `
- --x0: ${xx}px;
- --y0: ${yy}px;
- left: calc(50% - 10px);
- top: calc(50% - 10px);
- background: #${Math.random().toString(16).substr(-6)};
- animation: moving ${Math.random() * 20 + 20}s -${Math.random() * 20}s infinite var(--state);
- `;
- papa.prepend(lz);
- }
- let mState = () => papa.style.setProperty('--state', aud.paused ? 'paused' : 'running');
- let render = () => papa.style.setProperty('--hue', (aud.currentTime * 10) % 360 + 'deg');
- aud.addEventListener('timeupdate',render,false);
- aud.addEventListener('playing', mState, false);
- aud.addEventListener('pause', mState, false);
- papa.addEventListener('click', ()=> aud.paused ? aud.play() : aud.pause(),false);
- })();
- </script>
复制代码
|
|