|
楼主 |
发表于 2024-6-19 23:10
|
显示全部楼层
- <style>
- #tz { margin: 20px auto; width: 1024px; height: 576px; background: url('https://gd-hbimg.huaban.com/9919b2948a5911c74e8c179216102decb960e1d6200023-BhFHIC_fw1200') no-repeat center/cover; box-shadow: 3px 3px 6px gray; z-index: 1; position: relative; }
- #tz::before { content: attr(data-lrc); position: absolute; top: 15px; width: 100%; height: 60px; text-align: center; font: normal 32px/60px sans-serif; color: transparent; text-shadow: 2px 2px 2px rgba(0,0,0,.8); background: repeating-linear-gradient(to right, gold, lightgreen, snow, lightgreen, orange) 50%/200px 60px; -webkit-background-clip: text; }
- #player { left: 350px; top: 200px; width: 160px; height: 160px; filter: drop-shadow(0 0 50px white); cursor: pointer; transition: .5s; position: absolute; display: grid; place-items: center; animation: rot 8s linear infinite var(--state); }
- #player:hover { width: 50px; }
- c-c { position: absolute; width: 80%; height: 150px; border:3px solid snow;content: url('https://gd-hbimg.huaban.com/2136a30ff2d51f03bcb29932624f77616917218d47da-sHDdfg') ; border-radius: 50%; opacity: .55; }
- @keyframes rot { to { transform: rotate(1turn); } }
- </style>
-
- <div id="tz" data-lrc="万籁音">
- <audio id="aud" src="https://music.163.com/song/media/outer/url?id=35307327" autoplay loop></audio>
- <div id="player"></div>
- </div>
-
- <script>
- var curkey = 0, lrcAr = [], total =3;
- Array.from({length: total}).forEach((c,k) => {
- c = document.createElement('c-c');
- c.style.cssText += `
- transform: rotate(${360 / total * k}deg);
- border-color: #${Math.random()};
- `;
- player.appendChild(c);
- });
- var getAr = (text) => {
- var ar = text.trim().split('\n');
- ar.sort();
- var reg = /\[(\d+)[.:](\d+)[.:](\d+)\](.*)/;
- ar.forEach(item => {
- let result = item.match(reg);
- let tmsg = parseInt(result[1]) * 60 + parseInt(result[2]) + parseInt(result[3]) / 1000;
- lrcAr.push([tmsg, result[4].trim()]);
- });
- };
- var mState = () => {
- tz.style.setProperty('--state', ['running','paused'][+aud.paused]);
- player.title = ['暂停','播放'][+aud.paused];
- };
- aud.onseeked = () => curkey = 0;
- aud.onplaying = aud.onpause = () => mState();
- aud.ontimeupdate = () => {
- if(curkey > lrcAr.length - 1) return;
- if(aud.currentTime >= lrcAr[curkey][0]) {
- tz.dataset.lrc = lrcAr[curkey][1];
- curkey ++;
- }
- };
- player.onclick = () => aud.paused ? aud.play() : aud.pause();
-
- var lrc = `[00:00.00]万籁音`;
- getAr(lrc);
- </script>
复制代码 |
|