有声有色 发表于 2025-12-5 08:48

AI制作——(卖花)

本帖最后由 有声有色 于 2025-12-10 08:44 编辑 <br /><br /><div class="t_fsz">
<table cellspacing="0" cellpadding="0"><tr><td class="t_f" id="postmessage_1876423">
<style>
#papa {
        margin: 80px 0 0 calc(50% - 593px);
        width: 1024px;
        height: 640px;
        box-shadow: 4px 8px 20px #000;
        position: relative;
      overflow: hidden;
}
#mplayer {
        left: 50%;
        bottom: 20px;
        transform: translate(-50%);
        width: fit-content;
        height: fit-content;
        color: tan;
        position: absolute;
}
#mplayer::before, #mplayer::after {
        position: absolute;
        content: attr(data-cu);
        bottom: 16px;
}
#mplayer::before { left: 10px; }
#mplayer::after {
        content: attr(data-du);
        right: 10px;
}
#btn {
        display: block;
        margin: auto;
        margin-bottom: 10px;
        width: 80px;
        height: 80px;
        border-radius: 50%;
        cursor: pointer;
        animation: rot 6s infinite linear var(--state);
}
#prog {
        width: 400px;
        height: 45px;
        border: 1px solid tan;
        border-radius: 5px;
        display: grid;
        place-items: center start;
        position: relative;
}
#prog::before, #prog::after {
        position: absolute;
        content: '';
        cursor: pointer;
}
#prog::before {
        width: var(--ww);
        height: 5px;
        border-radius: 5px;
        background: linear-gradient(to right, LightSkyBlue, green, LightSkyBlue);
}
#prog::after {
        width: 100%;
        height:30px;
        border: 0px solid red;
}
.cap {
        position: absolute;
        left: calc(var(--ww) - 2px);
        width: 16px;
        height: 16px;
        background: LightSkyBlue;
        border-radius: 50%;
}
.pic {
        position: absolute;
        right: 0px;
        bottom: -80px;
        width: 250px;
        filter: blur(.5px) opacity(.8);
       
}
.pic1 {
        position: absolute;
        left: 80px;
        top: 420px;
        width: 240px;
       
}

.biankuang {
        position: absolute;
        width: px; height: px;       
}
#lrc { --motion: cover1; --tt: 5s; --state: paused; position: absolute; left: 20%; transform: translate(-50%); top: 510px; font: bold 2.4em sans-serif; color: hsl(300, 100%, 100%); -webkit-background-clip: text; filter: drop-shadow(1px 1px 2px hsla(0, 0%, 0%, .95)); }
#lrc::before { position: absolute; content: attr(data-lrc); width: 20%; height: 100%; color: transparent; overflow: hidden; white-space: pre; background: linear-gradient(180deg, hsla(120, 100%, 50%, .45), hsla(200, 100%, 66%, .6), hsla(60, 100%, 50%, .75)); filter: inherit; -webkit-background-clip: text; animation: var(--motion) var(--tt) linear forwards; animation-play-state: var(--state); }
@keyframes cover1 { from { width: 0; } to { width: 100%; } }
@keyframes cover2 { from { width: 0; } to { width: 100%; } }
.vid { position: absolute; width: 1024px; height: 640px; object-fit: cover; }
@keyframes rot { to { transform: rotate(1turn); } }
</style>

<div id="papa">
<video class="vid" src="https://txmov2.a.kwimgs.com/upic/2025/12/03/14/BMjAyNTEyMDMxNDE0NDJfODk4OTU4MThfMTgxNDA2MjU5NzgyXzJfMw==_b_B278d013077b6cd11daeb7d8f628fe8b8.mp4" autoplay="autoplay" loop="loop" muted="muted"></video>
        <img class="biankuang" src="" alt="" />
        <img class="pic" src="" alt="" />
        <img class="pic1" src="" alt="" />
      <div id="lrc" data-lrc="花潮lrc在线"></div>
        <div id="mplayer" data-du="00:00" data-cu="00:00">
                <img id="btn" src="https://pic1.imgdb.cn/item/64f95703661c6c8e543b90dc.gif" alt="" />
                <div id="prog"><span class="cap"></span></div>
        </div>
</div>
<audio id="aud" src="https://music.163.com/song/media/outer/url?id=27598338.mp3" loop autoplay></audio>

<script>
let canmove = false;

btn.addEventListener('click', () => aud.paused ? aud.play() : aud.pause());
aud.addEventListener('play', () => mplayer.style.setProperty('--state','running'));
aud.addEventListener('pause', () => mplayer.style.setProperty('--state','paused'));
aud.addEventListener('timeupdate', () => {
        if(!canmove) prog.style.setProperty('--ww', aud.currentTime * prog.offsetWidth / aud.duration + 'px');
        mplayer.dataset.cu = toMin(aud.currentTime);
        mplayer.dataset.du = toMin(aud.duration);
});
prog.addEventListener('mousemove', (e) => {
        if (!canmove) return;
        let pos = e.offsetX;
        if (pos < 0) pos = 0;
        if (pos > prog.offsetWidth) pos = prog.offsetWidth;
        prog.style.setProperty('--ww', e.offsetX + 'px');
});
prog.addEventListener('mousedown', (e) => {
        canmove = true;
});
prog.addEventListener('mouseup', (e) => {
        canmove = false;
        aud.currentTime = aud.duration * e.offsetX / prog.offsetWidth;
});
document.addEventListener('mouseup', () => canmove = false);

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 mKey = 0, mFlag = true;
let lrcAr = [
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
        ,
       
];
let vid = document.querySelector('.vid');
let mState = () => aud.paused ? (lrc.style.setProperty('--state', 'paused'), vid.pause()) : (lrc.style.setProperty('--state', 'running'), vid.play());
let showLrc = (time) => {let name = mFlag ? 'cover1' : 'cover2';lrc.innerHTML = lrcAr;lrc.dataset.lrc = lrcAr.replace(/<br>/, '\n');lrc.style.setProperty('--motion', name);lrc.style.setProperty('--tt', time + 's');lrc.style.setProperty('--state', 'running');mKey += 1;mFlag = !mFlag;};
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);};
aud.addEventListener('timeupdate', () => {for(let j = 0; j < lrcAr.length; j ++) {if (aud.currentTime >= lrcAr) {if (mKey === j) showLrc(lrcAr);else continue;}}});
aud.addEventListener('pause', () => mState());
aud.addEventListener('play', () => mState());
aud.addEventListener('seeked', () => calcKey());

</script></td></tr></table>

偶然~ 发表于 2025-12-5 11:08

幸福人生内心丰盈
心灵修行动人风景
保持向上发芽心情
心存静好花香满径
智慧开启要拼会赢
开拓进取勇毅前行
快乐日子魂牵梦萦
心如止水宽广心胸
珍惜时光描摹层层
保持热爱情有独衷
早安吉祥乐在其中

偶然~ 发表于 2025-12-5 11:09

来欣赏有声有色的精品佳作!

偶然~ 发表于 2025-12-5 11:09

制作大气唯美!

偶然~ 发表于 2025-12-5 11:10

太棒了!玫瑰花☆╮╮芍药花☆╮╰☆☆╮合欢花花~【*偶然 献花给你啦】

偶然~ 发表于 2025-12-5 11:10

期待有声有色佳作频出!

偶然~ 发表于 2025-12-5 11:10

愿有声有色事事如意吉祥,幸福快乐绵长。

偶然~ 发表于 2025-12-5 11:10

感谢有声有色带来的精彩,辛苦了!祝你开心幸福、阖家安康!

樵歌 发表于 2025-12-5 11:27

好美的意境,把江南的春天表现得淋漓尽致。歌曲也选 的是江南的曲调,简直太赞了!

樵歌 发表于 2025-12-5 11:28

问好有声有色老师{:4_190:}

有声有色 发表于 2025-12-5 15:57

偶然~ 发表于 2025-12-5 11:10
愿有声有色事事如意吉祥,幸福快乐绵长。

谢谢   共祝事事如意吉祥,幸福快乐绵长

有声有色 发表于 2025-12-5 15:59

樵歌 发表于 2025-12-5 11:27
好美的意境,把江南的春天表现得淋漓尽致。歌曲也选 的是江南的曲调,简直太赞了!

谢谢 鼓励 这都是几年以前用黑老师的代码做的,就把里面的视频用AI做了

偶然~ 发表于 2025-12-5 16:01

{:4_180:}

吉祥如意

清茶煮雪 发表于 2025-12-5 16:43

创意十足{:4_199:}欣赏问好!

红影 发表于 2025-12-5 19:12

这歌好听,吴侬软语的苏州评弹,一直都很很喜欢。
这满船花儿的女子撑船的场景也好美。{:4_187:}

红影 发表于 2025-12-5 19:14

船后带着落花花瓣的弧形很美,好像出现点不合理的,船后的带的是路一样的的镜头,好在时间很短{:4_173:}

红影 发表于 2025-12-5 19:15

欣赏有声有色老师好帖{:4_199:}

寒冬残荷 发表于 2025-12-5 19:48

欣赏!点赞!我的浏览器有问题?看不到LRC歌词。
页: [1]
查看完整版本: AI制作——(卖花)