有声有色 发表于 2023-5-19 14:29

TO 亚伦影音工作室——评弹莺莺操琴

本帖最后由 有声有色 于 2026-2-25 14:04 编辑 <br /><br /><div class="t_fsz">
<table cellspacing="0" cellpadding="0"><tr><td class="t_f" id="postmessage_1896529">
<i class="pstatus"> </i><br /><br /><style type="text/css">
#papa        {
        width: 1200px;height: 710px;position:relative; --state:paused;
        box-shadow:0px 0px 1px 2px #045768, 0px 0px 0px 8px #99e5f5,0px 0px 5px 15px #045768;
        overflow:hidden;border-radius:1%;display:grid; place-items:center;
        margin-top:100px;margin-LEFT: -310px;
}
.vid { position: absolute; width: 1500px; height: 710px; object-fit: cover; opacity: 1; }
.mypic { position: absolute; width: 10px; height: 10px;left: 82px;top: 380px; }


#baiBox {
      width: 500px;
        height: 50px;
      text-align: center;
      font-family:微软简中圆;
      font-size: 2.0rem;
      font-weight: bold;
      color: #f46ff6;
      transform-origin: top;
      animation: yao 1.0s linear infinite alternate;
        position:absolute;left:50px;top:30px;/*位置设置*/
}

@keyframes yao {
      from{transform: perspective(800px) rotatex(30deg); }
      to { transform: perspective(800px) rotatex(-30deg); }
}

.tit { position: relative;width: 500px;height: 30px;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) }

css-doodle { position: absolute; }
</style>


<div id="papa">

<metaname="referrer" content="never">
<video frameborder="0" class="vid"src="https://txmov2.a.kwimgs.com/upic/2026/02/22/12/BMjAyNjAyMjIxMjA2MDlfODk4OTU4MThfMTg4NTg2OTg0NzI0XzJfMw==_b_B6b4126b12e95867aca8b978d0292b69f.mp4" autoplay muted loop="" controls="" style="MARGIN-TOP:0px;MARGIN-LEFT:0px;background:#000 ;width:1380px; height: 750px;-webkit-mask-image: radial-gradient(black 100%, transparent 100%);position:absolute;left:0px;top:0px;"></video> </video>


<img class="mypic" src="https://z3.ax1x.com/2021/08/26/hujGMd.gif" alt="" />



<css-doodle grid="16" id="fFloat">
        :doodle {
                @size: 1200px 680px;
        }
        position: absolute;
        left: @r(255)%;
        top: -10%;
        :after {
                position: absolute;
                content: '@p(life, ♬, ♪, ♩,♫, ∮, ✲, ❉, ❤,, ☺, ★, ☆,ideal, ❄)';
                color:#ffffff;
                font-size: @r(15, 25)px;
        }
        animation: fall 40s @r(-6, 36)s infinite var(--state);
        @keyframes fall {
                from { transform: rotate(0deg) translate(0px); }
                to { transform: rotate(@r(-250,160)deg) translate(-1500px); }
        }
</css-doodle>

<css-doodle id="mplayer">
        :doodle {
                @grid: 2 / 500px 100px;
                color: var(--color);
                bottom: 70px;
                z-index: 999;
                --prog: 0%;
                --size: 60px;
                --ttmsg1: '00:00';
                --ttmsg2: '00:00';
                --color: #fb8a2f;
                position:absolute;
        }
        /* 时间信息 : 左 */
        @nth(1) {@place: 5% 100%; :after { content: var(--ttmsg1); } }
                /* 控制器 */
        @nth(2) {
                @size: 60px;
                @shape: windmill;
                @place: 50% 35%;                        
                background: var(--color);
                animation: rot 6s infinite linear var(--state);
        }
                /* 时间信息 : 右 */
        @nth(3) {
                @place: 95% 100%;
                :after { content: var(--ttmsg2); }
        }
                /* 进度条 */
        @nth(4) {
                @place: 50% 80%;
                @size: 100% 2px;
                background: Silver;
                display: grid;
                place-items: center start;
        :before {
                content: '';
                width: var(--prog);
                height: 100%;
                background: var(--color);
        }
}
@keyframes rot { to { transform: rotate(1turn); } }
</css-doodle>

<css-doodle id="lrc">
        :doodle {
                @size: auto 3.5em;
                bottom: 20px;
                --geci: "花潮lrc在线";
                --motion: cover2;
                --tt: 1s;
                position:absolute;
        }
        /* 单元格两个伪元素显示lrc歌词 */
        display: grid;
        place-items: center start;
        :before, :after {
                content: var(--geci);
                color: snow; /* 歌词底色 */
                font: bold 2.4em sans-serif;
                text-shadow: 1px 1px 1px #000;
                white-space: pre;
       }
        :after {
                position: absolute;
                width: 0;
                color: #18f978; /* 同步歌词颜色 */
                overflow: hidden;
                animation: var(--motion) var(--tt) linear forwards var(--state);
        }
        @keyframes cover1 { from { width: 0; } to { width: 100%; } }
        @keyframes cover2 { from { width: 0; } to { width: 100%; } }
</css-doodle>


<div id="baiBox">
<div class="tit">
<span style="color:#fb52f9;"><span style="font-size:32px;">《正月十五》</span>
<span style="color:#3d46f7;"><span style="font-size:20px;">   -看花灯</span>
</div></div>

<div style="position:absolute;bottom:10px;right:50px;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 style="position:absolute;bottom:20px;left:50px;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:#3d46f7;"><span style="font-family:微软雅黑;"><span style="font-size:24px;"></span></span></span></p></div>

<audio id="aud" src="http://cccimg.com/view.php/8ebb211227f812c8fbfe82bca1de15a1.mp3" autoplay loop></audio>
</div>

<script>
(function() {
        let slip = 0.5, mFlag = true, mKey = 0, clickIdx = 0, progChg = 0, cursors = ['default','pointer','pointer'];
let lrcAr = [
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
       
];
        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 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 mState = () => aud.paused ? (papa.style.setProperty('--state', 'paused') ) : (papa.style.setProperty('--state','running'));
        let showLrc = (time) => {lrc.style.setProperty('--motion', mFlag ? 'cover1' : 'cover2');lrc.style.setProperty('--geci', '"' + lrcAr + '"');lrc.style.setProperty('--tt', time + 's');mKey += 1;mFlag = !mFlag;};
        aud.addEventListener('play', mState, false);
        aud.addEventListener('pause', mState, false);
        aud.addEventListener('seeked', () => calcKey());
        aud.addEventListener('timeupdate', () => {for (j = 0; j < lrcAr.length; j++) {if (aud.currentTime - slip >= lrcAr) {cKey = j;if (mKey === j) showLrc(lrcAr);else continue;}}mplayer.style.setProperty('--ttmsg1', `'${toMin(aud.currentTime)}'`);mplayer.style.setProperty('--ttmsg2', `'${toMin(aud.duration-aud.currentTime)}'`);mplayer.style.setProperty('--prog',`${100 * aud.currentTime / aud.duration}%`);});
        mplayer.onclick = () => {if(clickIdx === 1) aud.paused ? aud.play() : aud.pause();if(clickIdx === 2) aud.currentTime = progChg;};
        mplayer.onmousemove = (e) => {let size = parseInt(window.getComputedStyle(mplayer).getPropertyValue('--size')), ww = mplayer.offsetWidth, hh = mplayer.offsetHeight;clickIdx = e.offsetY > hh/1.5 ? 2 : (e.offsetX > (ww - size)/2 && e.offsetX < (ww + size)/2 && e.offsetY < hh/1.5 ? 1 : 0);mplayer.style.cursor = cursors;if(clickIdx > 1) progChg = aud.duration * e.offsetX / ww;};
})();

(function() {
    let vid = document.querySelector('.vid');
    let script = document.createElement('script');
    script.src = 'https://unpkg.com/css-doodle@0.34.8/css-doodle.min.js';
    document.head.appendChild(script);
    let mState = () => aud.paused ? (papa.style.setProperty('--state', 'paused'), vid.pause()) : (papa.style.setProperty('--state', 'running'), vid.play());   
    aud.addEventListener('play', mState, false);
    aud.addEventListener('pause', mState, false);
    mplayer.onclick = () => aud.paused ? aud.play() : aud.pause();
})();
</script>
</td></tr></table>

红影 发表于 2023-5-19 15:34

这个暂停后,连女子弹琴的动作也停止了。制作真漂亮,@亚伦影音工作室老师收礼开心{:4_187:}

红影 发表于 2023-5-19 15:36

奇怪,暂停再播放,画面会有短暂的替换,换成了美女背景{:4_173:}

有声有色 发表于 2023-5-19 16:08

红影 发表于 2023-5-19 15:34
这个暂停后,连女子弹琴的动作也停止了。制作真漂亮,@亚伦影音工作室老师收礼开心

你不说我还不知道

有声有色 发表于 2023-5-19 16:10

红影 发表于 2023-5-19 15:36
奇怪,暂停再播放,画面会有短暂的替换,换成了美女背景

听出来了吗,里面是两个男人在轮流唱

红影 发表于 2023-5-19 16:15

有声有色 发表于 2023-5-19 16:10
听出来了吗,里面是两个男人在轮流唱

哦,这个倒是没注意。一直以为是一个人呢{:4_173:}

红影 发表于 2023-5-19 16:16

有声有色 发表于 2023-5-19 16:08
你不说我还不知道

暂停能让所有动作停止,这样的制作很棒呢{:4_187:}

一斛珠 发表于 2023-5-19 16:25

太好看了,佩服会玩动画是朋友

梦缘 发表于 2023-5-19 16:54

制作真漂亮,老师辛苦了。{:4_187:}

有声有色 发表于 2023-5-19 16:58

红影 发表于 2023-5-19 16:16
暂停能让所有动作停止,这样的制作很棒呢

为啥会出现美女,原来我上传图片的图床软件,今天一直不稳定,所以会出现美女的图片。

有声有色 发表于 2023-5-19 16:58

一斛珠 发表于 2023-5-19 16:25
太好看了,佩服会玩动画是朋友

谢谢,我也是在慢慢再学

红影 发表于 2023-5-19 20:16

有声有色 发表于 2023-5-19 16:58
为啥会出现美女,原来我上传图片的图床软件,今天一直不稳定,所以会出现美女的图片。

那张图我还打开过,还挺大的呢{:4_173:}
页: [1]
查看完整版本: TO 亚伦影音工作室——评弹莺莺操琴