亦是金 发表于 2025-5-7 14:08

《想你想断肠》 - 钰柃/月下思故人 (感谢亚伦老师代码!)

本帖最后由 亦是金 于 2025-11-8 16:32 编辑 <br /><br /><div class="t_fsz">
<table cellspacing="0" cellpadding="0"><tr><td class="t_f" id="postmessage_2303607">

<style>
#papa{
        position: relative;
        width: 1286px;
        height: 720px;
      margin-left:-340px;
        margin-top:50px;
        border-radius: 22px;
        border: thick double#88abfa;
        background:#000;
        overflow: hidden;
        --stat: running ;
}
#vid1{
        width: 80%;
        height: 80%;
        z-index: 1;
        position:absolute;
        top:10%;
        left:10%;
        object-fit: cover;
        pointer-events: none;
}
.vid{
        width: 100%;
        height: 100%;
        z-index: 2;
        position:absolute;
        top:0%; left:0%;

        opacity: 0;
        object-fit: cover;
        pointer-events: none;
        animation: round 80s linear infinite var(--stat);
}
@keyframes round {
        1% {opacity: 0;}
        5% {opacity: .6;}
        10% {opacity:.8;}
        15% {opacity:1;}
        20% {opacity: 0;}
}
.vid:nth-child(1){animation-delay: 72s;}
.vid:nth-child(2){animation-delay: 64s;}
.vid:nth-child(3){animation-delay: 56s;}
.vid:nth-child(4){animation-delay: 48s;}
.vid:nth-child(5){animation-delay: 40s;}
.vid:nth-child(6){animation-delay: 32s;}
.vid:nth-child(7){animation-delay: 24s;}
.vid:nth-child(8){animation-delay: 16s;}
.vid:nth-child(9){animation-delay: 8s;}
.vid:nth-child(10){animation-delay: 0s;}

#mdiv {
        top:80%;
        left:10%;
        cursor: pointer;
        width:100px;
       height:100px;
        text-align:center;
        animation:rot 10s linear infinite var(--stat);
        position: absolute;
        filter:drop-shadow(#000 0px 0 1px);
background: url('https://cccimg.com/view.php/8198dbbc91a9ffc15a5231394e4f09c2.png') no-repeat center / cover ;
        z-index: 40;
}
@keyframes rot { to { transform: rotate(-2turn);} }
#mdiv:hover {}

#lrc {
      --state: paused;
      --motion: cover2;
      --tt: 2s;
      --bg: linear-gradient(40deg, #fa4354, #fa4354, #7718f8, #18f5f8, #f5f818, #f87718) 50%/200px60px;
      position: absolute;
        z-index: 6;
      left: 50%;
      transform: translate(-50%);
      top: 86%;
      font:300 3.2em 华文新魏;
text-indent:-20px
        color: #000;
            
      filter:drop-shadow(#FFFFFF 1px 0 0)drop-shadow(#FFFFFF 0 1px 0)drop-shadow(#FFFFFF -1px 0 0) drop-shadow(#FFFFFF 0 -1px0);
}
#lrc::before {
      position: absolute;
      content: attr(data-lrc);
      width: 20%;
      height: 100%;
      color: transparent;
      overflow: hidden;
      white-space: pre;
      background: var(--bg);
        -webkit-background-clip: text;
      animation: var(--motion) var(--tt) linear forwards;
      animation-play-state: var(--state);
}
@keyframes cover1{0% { width: 0%;}100% { width: 100%;}}
@keyframes cover2 { 0% { width: 0%;}100% { width: 100%;}}
#fullscreen { position: absolute; bottom:92%; left:85%;font:900 2em/0em 楷体;color:#ffffff; opacity: 1; cursor: pointer; z-index: 111}
</style >

<div style="position: relative;width: 500px;height: 50px;top: 220px;LEFT: -280px;z-index: 88;filter: drop-shadow(-1px 1px 1px #ffffff)drop-shadow(0px -1px 1px #ffffff)drop-shadow(0px 0px 1px #ffffff)drop-shadow(0px 0px 1px #ffffff)drop-shadow(0px 0px 1px #ffffff)">
<p><span style="color:#f638ef;"><span style="font-family:微软简中圆;"><span style="font-size:34px;">《 想 你 想 断 肠 》</span></span></span></p></div>

<div style="position: relative;width: 500px;height: 50px;top: 190px;LEFT: 20px;z-index: 99;filter: drop-shadow(-1px 1px 1px #ffffff)drop-shadow(0px -1px 1px #ffffff)drop-shadow(0px 0px 1px #ffffff)drop-shadow(0px 0px 1px #ffffff)drop-shadow(0px 0px 1px #ffffff)">
<p><span style="color:#386df6;"><span style="font-family:微软简中圆;"><span style="font-size:20px;"> 演唱:钰柃/月下思故人</span></span></span></p></div>

<div style="position: relative;width: 500px;height: 50px;top:770px;LEFT: 720px;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:26px;">亦是金在线音乐</span></span></span></p></div>

<div id="papa" >
<span id="fullscreen">全屏欣赏</span>

<video id="vid1" src="https://video-qn.51miz.com/preview/video/00/00/12/79/V-127936-7871EE24.mp4" loop muted autoplay=""></video>

<div>
<video class="vid" src="https://video-qn.51miz.com/preview/video/00/00/66/27/V-662735-635AC2F4.mp4" loop muted autoplay></video>
<video class="vid" src="https://video-qn.51miz.com/preview/video/00/00/66/27/V-662739-DB83DC4F.mp4" loop muted autoplay></video>
<video class="vid" src="https://video-qn.51miz.com/preview/video/00/00/66/27/V-662744-5AB898FC.mp4" loop muted autoplay></video>
<video class="vid" src="https://video-qn.51miz.com/preview/video/00/00/66/27/V-662745-6A133EE2.mp4" loop muted autoplay></video>
<video class="vid" src="https://video-qn.51miz.com/preview/video/00/00/66/27/V-662750-434FC318.mp4" loop muted autoplay></video>
<video class="vid" src="https://video-qn.51miz.com/preview/video/00/00/66/27/V-662751-9920AF09.mp4" loop muted autoplay></video>
<video class="vid" src="https://video-qn.51miz.com/preview/video/00/00/66/27/V-662752-47C1FAC9.mp4" loop muted autoplay></video>
<video class="vid" src="https://video-qn.51miz.com/preview/video/00/00/66/27/V-662736-90727989.mp4" loop muted autoplay></video>
<video class="vid" src="https://video-qn.51miz.com/preview/video/00/00/66/27/V-662738-06380436.mp4" loop muted autoplay></video>
<video class="vid" src="https://video-qn.51miz.com/preview/video/00/00/66/27/V-662747-1B7225FF.mp4" loop muted autoplay></video>
</div>
<audio id="aud" src="https://s2.ananas.chaoxing.com/sv-w8/audio/dd/6f/e7/5f8ee7a15d9bbaeaa52473fd8bc72855/audio.mp3" autoplay loop></audio>
<div id="mdiv">

<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg"></svg>

</div>
<div data-lrc="视频转场效果" id="lrc">亦是金在线音乐欣赏</div>
</div>

<script>
(function() {
      const vids = document.querySelectorAll('.vid');
      var mState = () => {papa.style.setProperty('--stat', aud.paused ? 'paused' : 'running');
         vids.forEach(vid => aud.paused ? vid.pause() : vid.play());
      };
      aud.onplaying = aud.onpause = () => mState();
      })();

mdiv.onclick = () => aud.paused ? (aud.play(),vid1.play()): (aud.pause(),vid1.pause());
let fs = true;
      fullscreen.onclick = () => {
                fs ? (fullscreen.innerText = '退出全屏',papa.requestFullscreen()) : (fullscreen.innerText = '全屏欣赏', document.exitFullscreen());
                fs = !fs;
      };
</script>
<script >
(function() {
/*原始lrc歌词*/
let lrcStr = `《想你想断肠》
词曲:钰柃
演唱:钰柃/月下思故人
出品:钰柃文化影视传媒
歌词编辑:亦是金
。。。。。。
好久没有看见你的模样
有时还会想起你的过往
这次又走过了老地方
突然触痛心底的伤
那只乌篷船依旧晃啊晃
只是船长他换了个地方
以为你在船头摇着桨
一抬头却只是幻想
我想你啊想断肠
伤心泪水不停流淌
为什么你变了心
许下的誓言说忘就忘
我想你啊想断肠
你却搂着别人的肩膀
谁能治愈我的伤
谁还能把我放在心上
我想你啊想你想断肠
。。。。。。
好久没有看见你的模样
有时还会想起你的过往
这次又走过了老地方
突然触痛心底的伤
那只乌篷船依旧晃啊晃
只是船长他换了个地方
以为你在船头摇着桨
一抬头却只是幻想
我想你啊想断肠
伤心泪水不停流淌
为什么你变了心
许下的誓言说忘就忘
我想你啊想断肠
你却搂着别人的肩膀
谁能治愈我的伤
谁还能把我放在心上
我想你啊想断肠
伤心泪水不停流淌
为什么你变了心
许下的誓言说忘就忘
我想你啊想断肠
你却搂着别人的肩膀
谁能治愈我的伤
谁还能把我放在心上
我想你啊想你想断肠
-- 谢谢欣赏 --


`;

/*变量 :mKey - 当前歌词索引;mFlag :调用关键帧动画索引;averAdd :平均值补偿*/
let mKey = 0, mFlag = true, averAdd = 0.3;

/*函数 :获取每句歌词用时,歌词用时若超过平均值则取平均值,最后一句歌词则取平均值*/
let lrcTime = (ar) => {
      let tmpAr = [];
      for(j = 0; j <ar.length - 1; j ++) {
                if(j !== ar.length - 1) tmpAr = parseFloat((ar - ar).toFixed(1));
      }
      let aver = parseInt(tmpAr.reduce((a,b) => a + b) / (tmpAr.length - 1)) + averAdd;
      tmpAr.push(aver);
      tmpAr.forEach((item,key) => {
                ar = item > aver ? aver : item;
      });
      return ar;
};

/*函数 :从原始lrc歌词获取信息并存入 n*3 数组*/
let getLrcAr = (text) => {
      let lrcAr = [];
      let calcRule = ;
      for(x of text.split('\n')) {
                let ar = [];
                let re = /\d+[\.:]\d+([\.:]\d+)?/g;
                let geci = x.replace(re,'');
                if(geci) {
                        geci = geci.replace(/[\[\]\'\"\t,]s?/g,'');
                        let time = x.match(re);
                        if(time != null) {
                              for(y of time) {
                                        let tmp = y.match(/\d+/g);
                                        let sec = 0;
                                        for(z in tmp) sec += tmp * calcRule;
                                        ar = ;
                                        lrcAr.push(ar);
                              }
                        }
                }
      }
      lrcAr.sort((a,b)=> a - b);
      return(lrcTime(lrcAr));
};

/*函数 :模拟显示同步歌词*/
let showLrc = (time) => {
      let name = mFlag ? 'cover1' : 'cover2';
      lrc.innerHTML = lrcAr;
      lrc.dataset.lrc = lrcAr;
      lrc.style.setProperty('--motion', name);
      lrc.style.setProperty('--tt', time + 's');
      lrc.style.setProperty('--state', 'running');
      mKey += 1;
      mFlag = !mFlag;
};

/*函数 :处理当前歌词索引 mKey*/
let calcKey = () => {
      for (j = 0; j < lrcAr.length; j++) {
                if (aud.currentTime <= lrcAr) {
                        mKey = j - 1;
                        break;
                }
      }
      if (mKey < 0) mKey = 0;
      if (mKey > lrcAr.length - 1) mKey = lrcAr.length - 1;
      let time = lrcAr - (aud.currentTime - lrcAr);
      showLrc(time);
};

/*格式化时间信息*/
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;
}

/*函数 :关键帧动画状态切换*/
let mState = () => aud.paused ? (lrc.style.setProperty('--state','paused')) : (lrc.style.setProperty('--state','running'));

/*监听播放进度*/
aud.addEventListener('timeupdate', () => {
      for (j = 0; j < lrcAr.length; j++) {
                if (aud.currentTime >= lrcAr) {
                        cKey = j;
                        if (mKey === j) showLrc(lrcAr);
                        else continue;
                }
      }
});
aud.addEventListener('pause', () => mState());/*监听暂停事件*/
aud.addEventListener('play', () => mState());/*监听播放事件*/
aud.addEventListener('seeked', () => calcKey());/*监听查询事件*/
let lrcAr = getLrcAr(lrcStr); /*获得歌词数组*/
})();
</script>
</td></tr></table>

小辣椒 发表于 2025-5-7 14:48

欣赏前辈好制作,背景视频运用的真好,故事感很强了{:4_199:}

小辣椒 发表于 2025-5-7 14:49

亚纶的这个视频转换效果很漂亮的

小辣椒 发表于 2025-5-7 14:50

感谢精彩分享

亦是金 发表于 2025-5-7 16:49

小辣椒 发表于 2025-5-7 14:48
欣赏前辈好制作,背景视频运用的真好,故事感很强了

问好小辣椒!谢谢欣赏!{:4_187:}

亦是金 发表于 2025-5-7 16:51

小辣椒 发表于 2025-5-7 14:49
亚纶的这个视频转换效果很漂亮的

是的,亚伦老师的视频转换效果漂亮!谢谢亚伦的代码分享!{:4_190:}

红影 发表于 2025-5-7 16:54

这个制作真美,歌曲好听,没视频搭配恰当,同步歌词也很漂亮。
欣赏亦是金老师好帖{:4_199:}

亦是金 发表于 2025-5-7 16:57

小辣椒 发表于 2025-5-7 14:50
感谢精彩分享

应该感谢亚伦老师的代码,我是套用制作玩一个!{:4_189:}

亦是金 发表于 2025-5-7 20:02

红影 发表于 2025-5-7 16:54
这个制作真美,歌曲好听,没视频搭配恰当,同步歌词也很漂亮。
欣赏亦是金老师好帖

问好红影!谢谢欣赏点赞!{:4_187:}

杨帆 发表于 2025-5-7 21:44

漂亮!谢谢亦是金老师精彩分享{:4_191:}

红影 发表于 2025-5-7 22:34

亦是金 发表于 2025-5-7 20:02
问好红影!谢谢欣赏点赞!

居然少输入一个字母,每个视频咋打成没视频了,呵呵,输错字了。
不客气啊,问好亦是金老师{:4_187:}

冬天的雨 发表于 2025-5-7 22:56

视频背景电脑出来效果好,发现手机效果不流畅

亦是金 发表于 2025-5-8 11:34

杨帆 发表于 2025-5-7 21:44
漂亮!谢谢亦是金老师精彩分享

问好杨帆老师!谢谢欣赏点赞!{:4_190:}

亦是金 发表于 2025-5-8 11:35

红影 发表于 2025-5-7 22:34
居然少输入一个字母,每个视频咋打成没视频了,呵呵,输错字了。
不客气啊,问好亦是金老师

哈哈哈{:4_189:}问好!{:4_187:}

亦是金 发表于 2025-5-8 11:36

冬天的雨 发表于 2025-5-7 22:56
视频背景电脑出来效果好,发现手机效果不流畅

问好冬雨!好久不见了!谢谢欣赏!{:4_190:}

世外桃源 发表于 2025-5-9 13:16

欣赏了好制作

世外桃源 发表于 2025-5-9 13:16

感谢分享

红影 发表于 2025-5-9 20:08

亦是金 发表于 2025-5-8 11:35
哈哈哈问好!

问亦是金老师,晚上好{:4_187:}

绿叶清舟 发表于 2025-5-9 20:38

视频太漂亮了,开始看到画笔动以为AI制作的呢

冬天的雨 发表于 2025-5-9 21:26

亦是金 发表于 2025-5-8 11:36
问好冬雨!好久不见了!谢谢欣赏!

亦是金老师客气了,再次欣赏好制作{:4_187:}
页: [1] 2
查看完整版本: 《想你想断肠》 - 钰柃/月下思故人 (感谢亚伦老师代码!)