|
|

楼主 |
发表于 2022-6-16 20:37
|
显示全部楼层
代码分享:
- <style>
- /* 帖子外层 */
- .outer {
- left: -214px;
- width: 1024px;
- height: 600px;
- background: linear-gradient(to right top,black,#eee);
- overflow: hidden;
- position: relative;
- }
- /* 视频背景 */
- .vid {
- position: absolute;
- top: -50px;
- width: 100%;
- height: 650px;
- object-fit: cover;
- }
- /* 频谱+进度外层 */
- .mama {
- position: absolute;
- left: 20px;
- bottom: 40px;
- width: fit-content;
- height: fit-content;
- cursor: pointer;
- border-radius: 0 100%;
- background: linear-gradient(transparent,green);
- }
- /* 频谱外层 */
- .wrap {
- width: 90px;
- height: 60px;
- box-reflect: below 0 linear-gradient(rgba(0,0,0,.01),#000);
- -webkit-box-reflect: below 0 linear-gradient(rgba(0,0,0,.01),#000);
- position: relative;
- }
- /* 进度显示器 */
- .mama meter {
- width: 90px;
- position: relative;
- }
- /* 频谱 */
- .wrap span {
- width: 6px;
- height: 60px;
- bottom: -8px;
- display: inline-block;
- position: absolute;
- }
- /* 频谱伪元素 顶帽 */
- .wrap span::before {
- position: absolute;
- content: '';
- width: inherit;
- height: 3px;
- background: #eee;
- top: -3px;
- animation: up 1s ease-in infinite;
- }
- /* 歌词同步显示框 */
- .lrcbox {
- transform: translate(20px, 20px);
- font: bold 1.2em / 2em sans-serif;
- color: #fff;
- text-shadow: 1px 1px 1px #000;
- background: black linear-gradient(transparent,tan);
- border-radius: 100% 0;
- position: absolute;
- }
- /* 频谱顶帽动画 */
- @keyframes up {
- from { top: -6px; }
- to { top: -16px; }
- }
- </style>
- <div class="outer">
- <video class="vid" src="https://img.tukuppt.com/video_show/2421007/00/01/33/5b405cfa38460.mp4" autoplay="autoplay" loop="loop" muted="muted"></video>
- <div class="mama">
- <div class="wrap"></div>
- <meter id="meter" value="0" min="0" max="100" low="33" high="66" optimum="70"></meter>
- </div>
- <div class="lrcbox">Loading ...</div>
- </div>
- <audio id="aud" src="https://music.163.com/song/media/outer/url?id=3880911.mp3" autoplay="autoplay" loop="loop"></audio>
- <script>
- let mama = document.querySelector('.mama'),
- wrap = document.querySelector('.wrap'),
- lrcbox = document.querySelector('.lrcbox'),
- aud = document.querySelector('#aud'),
- meter = document.querySelector('#meter');
- let num = (min, max) => Math.floor(Math.random() * (max-min+1)) + min,
- prog = (tt, cc) => 100 * cc / tt;
- let lrcAr = [
- ['0.05','歌名 : Es Ist Ein Schnee Gefallen 落雪时分'],
- ['0.75','作曲 : Hannes Wader'],
- ['2.11','演唱 : Adaro'],
- ['11.42','Es ist ein Schnee gefallen'],
- ['16.83','und es ist doch nit Zeit'],
- ['22.00','Man wirft mich mit dem Ballen'],
- ['27.54','der Weg ist mir verschneit'],
- ['44.08','Mein Haus hat keinen Giebel'],
- ['49.35','es ist mir worden alt'],
- ['53.65','Zerbrochen sind die Riegel'],
- ['59.13','mein Stübelein ist mir kalt'],
- ['71.35','Ach Lieb, lass dich erbarmen'],
- ['76.72','dass ich so elend bin'],
- ['81.41','Und lass mich in dein Arme'],
- ['86.50','So fährt der Winter hin'],
- ['129.28','Ich hatt\' mir erkoren'],
- ['134.09','ein minnigliches Leut'],
- ['138.57','an den hab ich verloren'],
- ['144.05','mein Lieb und auch mein Treu'],
- ['156.68','Das Liedlein sein gesungen'],
- ['161.44','von einem Fraeulein fein'],
- ['166.04','ein ander\' hat mich verdrungen'],
- ['171.58','dass muss ich gut la\'n sein.']
- ];
- Array.from({length: 10}).forEach((ele,key) => {
- ele = document.createElement('span');
- ele.className = 'sskey';
- ele.style.left = key * 6 + key * 3 + 'px';
- ele.style.height = num(10,60) + 'px';
- ele.style.backgroundColor = `rgba(${num(0,255)},${num(0,255)},${num(0,255)},.95)`;
- wrap.appendChild(ele);
- })
- let sskey = document.querySelectorAll('.sskey');
- mama.onclick = () => aud.paused ? aud.play() : aud.pause();
- aud.addEventListener('timeupdate', () => {
- Array.from(sskey).forEach((ele) => {
- ele.style.height = num(10, 60) + 'px';
- })
- meter.value = prog(aud.duration, aud.currentTime);
- let tt = aud.currentTime;
- for(j=0; j<lrcAr.length; j++){
- if(tt >= lrcAr[j][0]){
- lrcbox.innerHTML = lrcAr[j][1];
- }
- }
- })
- </script>
复制代码
|
评分
-
| 参与人数 1 | 威望 +50 |
金钱 +100 |
经验 +50 |
收起
理由
|
小辣椒
| + 50 |
+ 100 |
+ 50 |
黑黑速度的。。。 |
查看全部评分
|