|
|

楼主 |
发表于 2024-6-10 15:32
|
显示全部楼层
帖子代码(未经严谨测试)
- <style>
- #tz { margin: 30px 0 30px calc(50% - 721px); width: 1280px; height: 640px; background: url('https://638183.freep.cn/638183/t24/2/55.jpg') no-repeat center/cover; box-shadow: 2px 2px 6px gray; overflow: hidden; position: relative; }
- #lrc { position: absolute; left: 20px; top: 20px; font: normal 40px sans-serif; white-space: nowrap; color: darkgreen; text-shadow: 1px 1px 1px gray; animation: fly 20s linear infinite alternate var(--state); --ww: 350px; }
- #player { position: absolute; left: calc(50% - 140px); bottom: 20px; width: 280px; height:10px; background: linear-gradient(to right, var(--color) var(--prg), transparent 0); border: 1px solid var(--color); border-radius: 6px; display: grid; place-items: center; --color: green; --prg: 0%; --btnSize: 50px;}
- #player::before, #player::after { position: absolute; content: ''; }
- #player::before { width: var(--btnSize); height: var(--btnSize); top: calc(var(--btnSize) * -1 - 5px); background: url('https://638183.freep.cn/638183/t23/btn/f5.png') no-repeat center/cover; filter: hue-rotate(180deg); animation: rot 6s linear infinite var(--state);}
- #player::after { content: attr(data-time); inset: -30px 0 10px 0; text-align: justify; text-align-last: justify; font-size: 14px; color: var(--color); pointer-events: none; }
- .vid { position: absolute; bottom: 0; width: 100%; height: calc(100% + 60px); object-fit: cover; mix-blend-mode: screen; pointer-events: none; }
- @keyframes rot { to { transform: rotate(360deg); } }
- @keyframes fly { to { left: calc(100% - var(--ww) - 20px); } }
- </style>
- <div id="tz">
- <audio id="aud" src="https://music.163.com/song/media/outer/url?id=2053633738" autoplay loop></audio>
- <video class="vid" src="https://img.tukuppt.com/video_show/7165162/00/17/67/5ecc8865bb6d6.mp4" autoplay loop muted></video>
- <div id="lrc">HUACHAO PLAYER</div>
- <div id="player" data-time="00:00 00:00"></div>
- </div>
- <script>
- var vids = document.querySelectorAll('.vid');
- var btnSize = parseInt(window.getComputedStyle(player).getPropertyValue('--btnSize'));
- var lrcKey = 0;
- var showLrc = () => {
- if(lrcKey >= lrcAr.length) return false;
- lrc.innerText = lrcAr[lrcKey][1];
- lrc.style.setProperty('--ww', lrc.offsetWidth + 'px');
- lrcKey ++;
- };
- var mState = () => {
- tz.style.setProperty('--state',['running','paused'][+aud.paused]);
- if(vids.length > 0) vids.forEach(vid => aud.paused ? vid.pause() : vid.play());
- };
- var s2m = (s) => (Math.floor(s / 60)).toString().padStart(2, '0') + ':' + (Math.floor(s % 60)).toString().padStart(2, '0');
- aud.onplaying = aud.onpause = () => mState();
- aud.onseeked = () => {
- for(var j = 0; j < lrcAr.length; j ++) {
- if(aud.currentTime < lrcAr[j][0]) {
- lrcKey = j - 1;
- if(lrcKey < 0) lrcKey = 0;
- break;
- }
- }
- };
- aud.ontimeupdate = () => {
- player.style.setProperty('--prg', (aud.currentTime / aud.duration * 100 || 0) + '%');
- player.dataset.time = s2m(aud.currentTime) + ' ' + s2m(aud.duration);
- if(lrcKey <= lrcAr.length - 1 && aud.currentTime >= lrcAr[lrcKey][0]) showLrc();
- }
- player.onclick = (e) => {
- if(e.offsetY > 0) aud.currentTime = aud.duration * e.offsetX / player.offsetWidth;
- if(e.offsetY < 0 && e.offsetX > player.offsetWidth / 2 - btnSize / 2 && e.offsetX < player.offsetWidth / 2 + btnSize / 2) aud.paused ? aud.play() : aud.pause();
- }
- player.onmousemove = (e) => {
- if(e.offsetY < 0) {
- if(e.offsetX > player.offsetWidth / 2 - btnSize / 2 && e.offsetX < player.offsetWidth / 2 + btnSize / 2) {
- player.title = aud.paused ? '播放' : '暂停';
- player.style.cursor = 'pointer';
- }
- }else{
- player.title = '调节进度';
- player.style.cursor = 'pointer';
- }
- };
- var lrcAr = [ [2,"余静 - 五月初五端午节", 4], [8.68,"词曲:张博伦",1.7], [10.39,"演唱:余静",5.3], [15.67,"五月初五端午节",4.9], [20.54,"佩香囊 挂艾叶",3.5], [24.06,"糯米粽子多吃些",3.9], [27.93,"龙舟嘛争前列",3.7], [31.67,"五月初 五端午节",3.2], [34.91,"爱国心 楚辞写",4.3], [39.23,"汨罗江边唤屈原",3.9], [43.14,"纪念他忠贞烈",18.9], [62.02,"五月初五端午节",4.0], [65.98,"佩香囊 挂艾叶",4.0], [70.01,"糯米粽子多吃些",3.9], [73.88,"龙舟嘛争前列",3.7], [77.61,"五月初 五端午节",4.3], [81.9,"爱国心 楚辞写",3.2], [85.08,"汨罗江边唤屈原",4.4], [89.52,"纪念他忠贞烈",6]];
- </script>
复制代码
|
评分
-
| 参与人数 1 | 威望 +50 |
金钱 +100 |
经验 +50 |
收起
理由
|
红影
| + 50 |
+ 100 |
+ 50 |
赞一个! |
查看全部评分
|