加林森 发表于 2022-7-5 20:14

《云水情》- 云飞/郭津彤

本帖最后由 加林森 于 2022-7-6 18:45 编辑 <br /><br /><style>
#ma { left: -342px; width: 1280px; height: 720px; background: #000 url('https://pic.imgdb.cn/item/62c51ea55be16ec74ae244fc.jpg') no-repeat; perspective: 1000px; box-shadow: 2px 2px 20px #000; position: relative; }
#circle { position: absolute; width: 100px; height: 100px; top: 10px; right: 10px; border-radius: 50%; background: red linear-gradient(120deg, lightgreen, transparent); mask-image: radial-gradient(circle at 30% 30%,transparent 20%, red); -webkit-mask-image: radial-gradient(circle at 30% 30%,transparent 20%, red); cursor: pointer; z-index: 100; }
#ma input { border: none; outline: none; opacity: .75; cursor: pointer; }
#ma p { margin: 0; padding: 0; }
#playbox { position: absolute; left: 10px; bottom: 10px; padding: 10px; font: normal 1em sans-serif; color: tomato; text-shadow: 1px 1px 1px #000; background: transparent; border-radius: 8px; overflow: hidden; box-shadow: 1px 1px 2px rgba(0,0,0,.15); z-index: 100; }
#playbox::before { position: absolute; content: ''; margin: -20px; left: 0; top: 0; right: 0; bottom: 0; background: rgba(255,255,255,.45); filter: blur(2px); z-index: -1; }
#btnplay { width: 30px; height: 30px; border-radius: 50%; }
#btnplay:hover { background: #aaa; color: #ff0000; }
.pics {position: absolute; width: 256px; box-shadow: inherit; transform-style: preserve-3d; display: none; opacity: .65; transition: all .5s; }
.pics:hover { width: 300px; opacity: 1; cursor: pointer; }
@keyframes drop { from { transform: translateY(10px); } to { transform: translateY(488px); } }
@keyframes up { from { transform: translateY(488px); } to { transform: translateY(10px); } }
</style>

<div id="ma">
      <div id="circle"></div>
      <div id="playbox">
                <p id="geci" style="font-size: 1.2em">云水情 - 云飞/郭津彤</p>
                <p style="display: flex; align-items: center; gap: 4px; margin-top: 10px;">
                        <input id="btnplay" type="button" value=">" />
                        <input id="slider" type="range" min="0" max="100" value="0" />
                        <span id="per">0%</span>
                </p>
      </div>
</div>
<audio id="aud" src="https://www.joy127.com/url/5735.mp3" autoplay="autoplay" loop="loop"></audio>

<script>
let flag = 1;slip = 0, idxar = [];
let imgAr = [
      'https://pic.imgdb.cn/item/62c3c1b05be16ec74a502e47.jpg',
      'https://pic.imgdb.cn/item/62c3c2535be16ec74a50f117.jpg',
      'https://pic.imgdb.cn/item/62c3c2c15be16ec74a516d0b.jpg',
      'https://pic.imgdb.cn/item/62c3c35b5be16ec74a522ebd.jpg',
      'https://pic.imgdb.cn/item/62c3c4125be16ec74a5309b4.jpg',
      'https://pic.imgdb.cn/item/62c3c4845be16ec74a539110.jpg'
];

let lrcAr = [
        ['2.87','云水情 '],
        ['4.18','词:李长鸿'],
        ['5.67','曲:孟文豪'],
        ['6.73','发行:星橙时代'],
        ['20.24','草原晨风 唤醒黎明'],
        ['27.41','那是你醉人的歌声'],
        ['34.63','月光奏鸣 漫天繁星'],
        ['41.83','伴着你的琴声入梦'],
        ['49.20','马蹄阵阵 纵情驰骋'],
        ['55.92','激荡你胸中的豪情'],
        ['62.99','归雁声声 敲打窗棂'],
        ['70.96','好似你温柔的叮咛'],
        ['78.33','我思念的爱人啊'],
        ['85.25','可否听见我心中的深情'],
        ['92.51','我思念的爱人啊'],
        ['99.65','你的声音是最美的风景'],
        ['108.08','听天籁云在等'],
        ['110.45','听流水映晴空'],
        ['114.50','愿天地永相爱'],
        ['118.14','深深云水情'],
        ['122.20','听风雨伴君行'],
        ['125.33','听山水共和声'],
        ['129.08','愿天下有情人'],
        ['132.82','共此一生情'],
        ['156.46','马蹄阵阵 纵情驰骋'],
        ['163.02','激荡你胸中的豪情'],
        ['170.92','归雁声声 敲打窗棂'],
        ['178.21','好似你温柔的叮咛'],
        ['185.50','我思念的爱人啊'],
        ['192.74','可否听见我心中的深情'],
        ['199.61','我思念的爱人啊'],
        ['206.82','你的声音是最美的风景'],
        ['214.72','我思念的爱人啊'],
        ['221.83','可否听见我心中的深情'],
        ['229.15','我思念的爱人啊'],
        ['236.00','你的声音是最美的风景'],
        ['243.82','听天籁云在等'],
        ['247.25','听流水映晴空'],
        ['250.88','愿天地永相爱'],
        ['254.42','深深云水情'],
        ['258.42','听风雨伴君行'],
        ['261.80','听山水共和声'],
        ['265.39','愿天下有情人'],
        ['269.01','共此一生情'],
        ['275.78','愿天下有情人'],
        ['279.96','共此一生情']
];

let gnum = (min,max) => Math.floor(Math.random()*(max-min+1))+min;

imgAr.forEach((item,key) => {
      item = document.createElement('img');
      item.className = 'pics';
      item.src = imgAr ; + '.jpg';
      item.style.left = key * 190 + 30 + 'px';
      item.style.top = gnum(40, 200) + 'px';
      item.style.transform = 'rotateY(' + gnum(25,45) +'deg)';
      item.alt = '';
      ma.appendChild(item);
});

circle.onmouseover = () => {
      let pics = document.querySelectorAll('.pics')
      if(flag == 1) {
                circle.style.animation = 'drop .5s forwards ease-in',
                pics.forEach((ele) => ele.style.display = 'block');
                flag = 0;
      } else {
                circle.style.animation = 'up .5s forwards ease-out';
                pics.forEach((ele) => ele.style.display = 'none');
                flag = 1;
      }
}

slider.onmousedown = () => aud.pause();
slider.onchange = () => { aud.currentTime = slider.value * aud.duration / 100; aud.play(); }
btnplay.onclick = () => aud.paused ? aud.play() : aud.pause();
aud.addEventListener('playing', () => btnplay.value = '||');
aud.addEventListener('pause', () => btnplay.value = '>');

aud.addEventListener('timeupdate', () => {
      let prog = 100 * aud.currentTime / aud.duration;
      slider.value = prog;
      per.innerText = toMin(aud.currentTime) + ' | ' + toMin(aud.duration);
                for(j=0; j<lrcAr.length; j++){
                if(aud.currentTime >= lrcAr - slip){
                        geci.innerHTML = lrcAr;
                }
      }
});
let toMin = (sec) => {
      if(!sec) return '0:00';
      sec = parseInt(sec);
      return parseInt(sec / 60) + ':' + parseFloat(sec % 60).toString().padStart(2,'0');
}
</script>

加林森 发表于 2022-7-5 20:15

@马黑黑    我这个歌词放不出来呢?

绿叶清舟 发表于 2022-7-5 20:18

队长也是快的啊,又出一个新的了

马黑黑 发表于 2022-7-5 20:19

加林森 发表于 2022-7-5 20:15
@马黑黑    我这个歌词放不出来呢?

这个模板不处理歌词。你需要把如下这段代码,

aud.addEventListener('timeupdate', () => {
      let prog = 100 * aud.currentTime / aud.duration;
      slider.value = prog;
      per.innerText = toMin(aud.currentTime) + ' | ' + toMin(aud.duration);
});

换成,

aud.addEventListener('timeupdate', () => {
        let prog = 100 * aud.currentTime / aud.duration;
        slider.value = prog;
        per.innerText = toMin(aud.currentTime) + ' | ' + toMin(aud.duration);
                for(j=0; j<lrcAr.length; j++){
                if(aud.currentTime >= lrcAr - slip){
                        geci.innerHTML = lrcAr;
                }
        }
});

加林森 发表于 2022-7-5 20:21

绿叶清舟 发表于 2022-7-5 20:18
队长也是快的啊,又出一个新的了

嗯嗯,跟到学习。好奇怪的,怎么歌词不出来了啊?晕~~~~~~~~~~~~

绿叶清舟 发表于 2022-7-5 20:24

加林森 发表于 2022-7-5 20:21
嗯嗯,跟到学习。好奇怪的,怎么歌词不出来了啊?晕~~~~~~~~~~~~

代码换了

醉美水芙蓉 发表于 2022-7-5 20:46

东篱闲人 发表于 2022-7-5 20:54

教授和男女对唱干上了!{:5_116:}

加林森 发表于 2022-7-5 20:56

马黑黑 发表于 2022-7-5 20:19
这个模板不处理歌词。你需要把如下这段代码,

aud.addEventListener('timeupdate', () => {


谢谢老黑了。我在制作时就感到可能代码出问题了。现在终于明白了。

加林森 发表于 2022-7-5 20:58

绿叶清舟 发表于 2022-7-5 20:24
代码换了

是的。歌词我本来就做好了的。

加林森 发表于 2022-7-5 21:01

醉美水芙蓉 发表于 2022-7-5 20:46
很漂亮呢!队长辛苦了!

不辛苦的。谢谢水芙蓉!

加林森 发表于 2022-7-5 21:05

东篱闲人 发表于 2022-7-5 20:54
教授和男女对唱干上了!

别乱说啊,他们是夫妻

东篱闲人 发表于 2022-7-5 21:13

加林森 发表于 2022-7-5 21:05
别乱说啊,他们是夫妻

俺说的意思你在主攻这一类的作品?你咋想的?{:5_115:}

加林森 发表于 2022-7-5 21:21

东篱闲人 发表于 2022-7-5 21:13
俺说的意思你在主攻这一类的作品?你咋想的?

不是,是今天听见感觉好听就 制作开始了。

加林森 发表于 2022-7-5 21:24

醉美水芙蓉 发表于 2022-7-5 20:46
很漂亮呢!队长辛苦了!

谢谢水芙蓉!

马黑黑 发表于 2022-7-5 21:29

加林森 发表于 2022-7-5 20:56
谢谢老黑了。我在制作时就感到可能代码出问题了。现在终于明白了。

是否处理歌词,但 audio 的 timeupdate 监听事件

加林森 发表于 2022-7-5 21:31

马黑黑 发表于 2022-7-5 21:29
是否处理歌词,但 audio 的 timeupdate 监听事件

嗯嗯,我以后会记住的。{:5_108:}

小辣椒 发表于 2022-7-5 21:31

队长好~~~完成了,队长好棒!{:4_178:}

小辣椒 发表于 2022-7-5 21:33

队长的小图会逃出界面{:4_173:}

加林森 发表于 2022-7-5 21:36

小辣椒 发表于 2022-7-5 21:31
队长好~~~完成了,队长好棒!

谢谢你。
页: [1] 2 3
查看完整版本: 《云水情》- 云飞/郭津彤