|
|
代码修改了一下,不知是否满足您的要求
- <meta charset="utf-8">
- <meta name="referrer" content="never" />
- <style>
- .lrcShow {
- font: bold 3.0em 楷体, 楷体_GB2312;
- position: absolute;
- width: 80%;
- height: 2em;
- top: 88%;
- left:30%;
- color: transparent;
- filter: drop-shadow(1px 1px 1px white);
- letter-spacing: 0px;
- z-index:10;
- }
- .sChar {
- ddisplay: block;
- padding: 0 2px;
- opacity: 0;
- transform: translate(var(--x), var(--y));
- animation: fadeIn 0.3s var(--delay) forwards;
- }
- @keyframes fadeIn {
- to {
- transform: translate(0, 0);
- opacity: 1;
- }
- }
- .stage {
- mask: radial-gradient(closest-side, white 65%, transparent);
- }
- #oBlk {width:1400px;height:760px;position:relative;margin:80px auto 40px calc(50% - 781px);overflow:hidden;border-radius:24px;box-shadow:4px 4px 10px black;}
- #bjVid {width:100%;position:absolute;left:0px;bottom:0px;z-index:1;transform: rotateY(180deg);}
- #controlBox {position:absolute; right:50px;bottom:50px;width:60px;z-index:100;visibility:hidden;//播放按钮}
- #canvas {position:absolute; left:0px; top:-1px;transform:scale(1.0);transform: rotateX(180deg);z-index:100;}//频谱
- #dprg {width:60%;appearance: none;height:6px; overflow:hidden; border-radius: 4px;position:absolute;right:20%; bottom:15px; z-index:100;//播放进度}
- #dprg::-webkit-progress-value {background:linear-gradient(-45deg, red, yellow, green, purple, blue);}
- #dprg::-webkit-progress-bar {background:hsla(60,40%,80%,0.5);}
- #incBlk {width:12px;height:12px;overflow:hidden;border-radius:50px;background-color:brown;position:absolute; z-index:100;}
- </style>
- <div id="oBlk">
- <video id="bjVid" src="https://video-qn.51miz.com/preview/video/00/00/67/01/V-670115-94243A06.mp4" loop muted autoplay ></video>
- <canvas id="canvas" width='1400' height='200'></canvas>//频谱画布
- <progress id="dprg" value='0' max="100" ></progress>
- <div id="incBlk"></div>
- <div id="controlBox"></div>
- <div class="lrcShow" data-lrc='《你不该闯入我心中》袁小袁'></div>
- </div>
- <div style="position: relative;width: 500px;height: 50px;top:-80px;LEFT: 800px;z-index: 100;filter: drop-shadow(-1px 1px 1px #e8f552)drop-shadow(0px -1px 1px #e8f552)drop-shadow(0px 0px 1px #e8f552)drop-shadow(0px 0px 1px #e8f552)drop-shadow(0px 0px 1px #e8f552)">
- <p><span style="color:#ff0000;"><span style="font-family:华文隶书;"><span style="font-size:24px;">亦是金在线音乐</span></span></span></p></div>
- <script>
- const lrc =`
- [00:00.00]《你不该闯入我心中》袁小袁
- [00:04.00]词:冷雪
- [00:06.00]曲:梁帅
- [00:08.00]演唱:袁小袁
- [00:10.00]歌词编辑:亦是金
- [00:13.00]。。。。。。
- [00:14.89]想你的时候心疯狂地跳动
- [00:21.03]你的名字还萦绕在脑海中
- [00:27.49]好想你能陪我吹一吹晚风
- [00:33.61]你又怎会懂我的苦衷
- [00:39.94]我问天问地为何如此不公
- [00:45.96]一切都是命运注定的相逢
- [00:52.39]我的心痛痛无法自己掌控
- [00:58.59]心在滴血眼睛已哭红
- [01:04.84]你不该不该不该闯入我心中
- [01:11.12]为你付出再多你也没感动
- [01:17.35]爱情的梦成了一场空
- [01:23.25]如今只剩下一张沧桑的面容
- [01:29.84]你不该不该不该闯入我怀中
- [01:36.10]爱你拼了命换来一身伤痛
- [01:42.33]我很难过就快要发疯
- [01:48.26]对你的痴心你为何始终不懂
- [01:54.69]。。。。。。
- [02:07.10]我问天问地为何如此不公
- [02:13.26]一切都是命运注定的相逢
- [02:19.64]我的心痛痛无法自己掌控
- [02:25.84]心在滴血眼睛已哭红
- [02:32.17]你不该不该不该闯入我心中
- [02:38.29]为你付出再多你也没感动
- [02:44.62]爱情的梦成了一场空
- [02:50.58]如今只剩下一张沧桑的面容
- [02:57.08]你不该不该不该闯入我怀中
- [03:03.26]爱你拼了命换来一身伤痛
- [03:09.55]我很难过就快要发疯
- [03:15.53]对你的痴心你为何始终不懂
- [03:21.89]对你的痴心你为何始终不懂
- [03:28.03]
- [03:30.03]-- 谢谢欣赏 --
- [03:47.12]
- `;
- const genTagObj = (parentNode,jsonData) => {let sObj=document.createElementNS("http://www.w3.org/2000/svg",jsonData.tag);for(let key in jsonData){if(key==='tag'){continue}else if(jsonData.hasOwnProperty(key)){sObj.setAttribute(key,jsonData[key])}};if(parentNode)parentNode.appendChild(sObj);return sObj};
- const sf1 = document.createElement('script');
- sf1.type = 'text/javascript';
- sf1.src = "https://cccimg.com/down.php/86abfd1a59a239a0c6f2f1d6d1897c82.js";
- sf1.charset = "utf-8";
- document.body.appendChild(sf1);
- sf1.onload = () => {
- let playMusic = () => {
- // 同步歌词播放
- let opts = {
- lrcTxt:lrc,
- audioURL:"https://s2.cldisk.com/sv-w8/audio/6c/c3/f0/ad5b43a9ff5c0ca6a174d4e7ac3f701e/audio.mp3",
- canvas: canvas,
- };
- return new lrcPlayerFrg(opts);
- }
- (function() {
- //-----------------------------------------------------------------------------
- // 同步歌词播放
- let lrcPlayer = playMusic();
-
- const musicObj = lrcPlayer.getAudObj();
- const pausePath = "M35 35 h12 v30 h-12 z m18 0 h12 v30 h-12 z";
- const playPath = "M35 35 l30 15 -30 15 z";
- let ctrlBox = genTagObj(null ,{'tag':'svg', 'viewBox':`0 0 100 100`});
- let circleObj = genTagObj(ctrlBox ,{'tag':'circle', 'r':"36", 'cx':"50", 'cy':"50", 'fill':"none", 'stroke':"red", 'stroke-width':"4"});
- circleObj = genTagObj(ctrlBox ,{'tag':'circle', 'r':"30", 'cx':"50", 'cy':"50", 'fill':"none", 'stroke':"red", 'stroke-width':"2"});
- let pathObj = genTagObj(ctrlBox ,{'tag':'path', 'fill':"red", 'id':"playCtrl", 'd':"M35 35 l30 15 -30 15 z"});
- controlBox.innerHTML = ctrlBox.outerHTML;
-
- let pState = () => {
- musicObj.paused ? (playCtrl.setAttribute('d', playPath), bjVid.pause())
- : (playCtrl.setAttribute('d', pausePath), bjVid.play());
- };
-
- incBlk.style.top = (dprg.offsetTop - (incBlk.offsetHeight - dprg.offsetHeight) / 2) + 'px';
- incBlk.style.left = (dprg.offsetLeft - 0.5 * incBlk.clientWidth) + 'px';
-
- playCtrl.addEventListener('click', () => {
- if(lrcPlayer.getAudContext() && lrcPlayer.getAudContext().state !== 'running') {
- lrcPlayer.getAudContext().resume();
- }
- if (musicObj.paused) {
- musicObj.play();
- } else {
- musicObj.pause();
- }
- });
- musicObj.addEventListener('play', () => pState());
- musicObj.addEventListener('pause', () => pState());
-
- const pblkWidth = dprg.offsetWidth
- const initIndicatorLeft = incBlk.offsetLeft;
- musicObj.addEventListener("timeupdate", () => {
- dprg.value = parseFloat((musicObj.currentTime / musicObj.duration) * 100);
- incBlk.style.left = (musicObj.currentTime / musicObj.duration * pblkWidth + initIndicatorLeft) + 'px';
- })
- /**/
- dprg.onclick = (e) => {
- musicObj.currentTime = (e.offsetX / pblkWidth * dprg.max * musicObj.duration / 100);
- }
- /**/
- oBlk.addEventListener('mouseover', () => controlBox.style.visibility='visible');
- oBlk.addEventListener('mouseout', () => setTimeout(() => controlBox.style.visibility='hidden', 3000));
- })();
- }
- </script>
复制代码 |
评分
-
| 参与人数 1 | 威望 +50 |
金钱 +100 |
经验 +50 |
收起
理由
|
樵歌
| + 50 |
+ 100 |
+ 50 |
代码简洁,逻辑清晰易读! |
查看全部评分
|