修得孤独淡寂寞-乔洋 / 周林枫(学习老黑“阿瓦尔古丽”制作)
<style>#papa { left: -214px; width: 1024px; height: 640px; background: tan url('https://pic.imgdb.cn/item/6322c93d16f2c2beb1d20e4f.jpg') no-repeat center/cover; box-shadow: 3px 3px 20px #000; display: grid; place-items: center; position: relative; z-index: 1; }
#mplayer { position: absolute; left: 20px; bottom: 0px; width: 300px; height: 80px; user-select: none; display: grid; place-items: center; cursor: pointer; }
#mplayer:hover #btnwrap, #mplayer:hover #prog { transform: translateY(var(--yy)); }
#mplayer:hover #btnwrap { background: linear-gradient(to top right, red, green); border-radius: 50%; opacity: .75; }
#btnwrap, #prog { position: absolute; display: grid; place-items: center;transition: .5s; }
#btnwrap { --yy: -15px; width: 40px; height: 40px; transform: rotate(45deg); border: 1px solid tan; border-radius: 6px; opacity: .25; }
#btnplay { width: 20px; height: 20px; background: #eee; clip-path: polygon(0 0, 0% 100%, 100% 50%); }
#btnpause { width: 2px; height: 20px; border-style: solid; border-width: 0px 4px; border-color: transparent #eee; display: none; }
#prog { --yy: 20px; width: 300px; height: 16px; border-radius: 10px; background: linear-gradient(90deg, orange, red 100%, transparent 0); border: 1px solid gray; font: normal 14px / 16px sans-serif; color: white;opacity: .75; }
#lrc { --dur: 6s; position: absolute; top: 80px; font: bold 2em sans-serif; color: transparent; letter-spacing: 2px; background: linear-gradient(-90deg, darkred, gold, orange, snow) 100% 0 / 200% 100%; background-clip: text; -webkit-background-clip: text; animation: bgMerge var(--dur) linear infinite; }
@keyframes bgMerg1 { from { background-position: 0 0; } to { background-position: -100% 0; } }
@keyframes bgMerg2 { from { background-position: 0 0; } to { background-position: -100% 0; } }
</style>
<div id="papa">
<div id="lrc">lrc</div>
<div id="mplayer">
<div id="btnwrap"><span id="btnplay"></span><span id="btnpause"></span></div>
<div id="prog">00:00 | 00:00</div>
</div>
</div>
<script>
let lrcAr = [
['00.00','修得孤独淡寂寞-乔洋 / 周林枫'],
['5.89','万家灯火 红尘一个人漂泊'],
['8.44','孤独的我 满天星辰不寂寞'],
['12.07','别说爱我 昙花一现的承诺'],
['17.50','惹相思又换来了什么'],
['22.32','深爱过 哪怕被冷落也得过且过'],
['27.55','入了魔 自食的苦果活该受折磨'],
['32.27','看不破 置身在其中盼不到结果'],
['37.31','都成空 回忆中淹没'],
['42.26','万家灯火 红尘一个人漂泊'],
['47.24','孤独的我 满天星辰不寂寞'],
['52.22','别说爱我 昙花一现的承诺'],
['57.55','惹相思又换来了什么'],
['62.51','名利淡泊 自知花开有花落'],
['67.38','孤独的我 人情冷暖不寂寞'],
['72.46','对酒当歌 此生愿做个看客'],
['77.78','总好过 那扑火的飞蛾'],
['103.12','深爱过 哪怕被冷落也得过且过'],
['107.95','入了魔 自食的苦果活该受折磨'],
['113.06','看不破 置身在其中盼不到结果'],
['118.11','都成空 回忆中淹没'],
['123.03','万家灯火 红尘一个人漂泊'],
['127.90','孤独的我 满天星辰不寂寞'],
['133.06','别说爱我 昙花一现的承诺'],
['138.36','惹相思又换来了什么'],
['143.23','名利淡泊 自知花开有花落'],
['148.18','孤独的我 人情冷暖不寂寞'],
['153.38','对酒当歌 此生愿做个看客'],
['156.85','总好过 那扑火的飞蛾'],
['163.99','万家灯火 红尘一个人漂泊'],
['168.61','孤独的我 满天星辰不寂寞'],
['173.38','别说爱我 昙花一现的承诺'],
['178.77','惹相思又换来了什么'],
['183.71','名利淡泊 自知花开有花落'],
['188.75','孤独的我 人情冷暖不寂寞'],
['193.64','对酒当歌 此生愿做个看客'],
['198.97','总好过 那扑火的飞蛾'],
['204.30','总好过 那扑火的飞蛾'],
['208.00','谢谢欣赏']
];
let aud = new Audio() ,lrcKey = 0;
let setColor = () => Math.random().toString(16).substr(-6);
aud.src = 'https://music.163.com/song/media/outer/url?id=1811901998.mp3';
aud.autoplay = true;
aud.loop = true;
btnwrap.onclick = () => aud.paused ? aud.play() : aud.pause();
prog.onclick = (e) => aud.currentTime = aud.duration * e.offsetX / prog.offsetWidth;
aud.addEventListener('pause', () => btnstate());
aud.addEventListener('play',() => btnstate());
aud.addEventListener('timeupdate', () => {
prog.style.background= 'linear-gradient(90deg, orange, red ' + aud.currentTime / aud.duration * 100 + '%, transparent 0)';
prog.innerText = toMin(aud.currentTime) + ' | ' + toMin(aud.duration);
for(j=0; j<lrcAr.length; j++) {
if(aud.currentTime >= lrcAr) {
if(lrcKey == j) {
showLrc();
} else {
continue;
}
}
}
});
let btnstate = () => aud.paused ? (btnplay.style.display = 'block', btnpause.style.display = 'none') : (btnplay.style.display = 'none', btnpause.style.display = 'block');
let showLrc = () => {
let time= 6;
if(lrcKey < lrcAr.length - 1) {
time = lrcAr - lrcAr;
lrc.style.animation = (lrcKey % 2 == 0 ? 'bgMerg1 ' : 'bgMerg2 ') + time + 's linear forwards';
}
lrc.innerText = lrcAr;
lrcKey += 1;
if(lrcKey >= lrcAr.length) lrcKey = 0;
}
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;
}
</script>
@马黑黑 本帖最后由 加林森 于 2022-9-15 15:20 编辑
我在使用过程中感到歌词在换词断点过程挺好的。没有卡顿的现象。谢谢老黑!{:4_190:} 这个歌词的最大优点就是:可以调整歌词的快与慢,慢了可以立即自行调节的。 老林的作品越来越精。 梦油 发表于 2022-9-15 17:12
老林的作品越来越精。
谢谢老梦支持! 欣赏队长大作。赞。 马黑黑 发表于 2022-9-15 18:12
欣赏队长大作。赞。
谢谢老黑的分享。 加林森 发表于 2022-9-15 17:20
谢谢老梦支持!
老朋友别客气。 梦油 发表于 2022-9-15 19:57
老朋友别客气。
好的好的。 队长这首歌蛮好听的{:4_199:} 漂亮的制作,欣赏队长好帖{:4_187:} 加林森 发表于 2022-9-15 15:18
我在使用过程中感到歌词在换词断点过程挺好的。没有卡顿的现象。谢谢老黑!
是的,队长这个歌词同步制作比小辣椒好多了{:4_199:} 小辣椒 发表于 2022-9-15 20:17
队长这首歌蛮好听的
是啊。 红影 发表于 2022-9-15 20:18
漂亮的制作,欣赏队长好帖
谢谢红影鼓励! 小辣椒 发表于 2022-9-15 20:18
是的,队长这个歌词同步制作比小辣椒好多了
是的。你忙,我不忙的。 好漂亮的图,歌好听!{:4_187:} 梦缘 发表于 2022-9-15 20:32
好漂亮的图,歌好听!
梦缘晚上好!{:4_190:}
页:
[1]