马黑黑 发表于 2024-2-28 08:44

千灯展卷

<style>
        #papa { margin: 0 0 0 calc(50% - 621px); display: grid; place-items: center; width: 1080px; height: 683px; background: url('https://638183.freep.cn/638183/t24/1/bbce.jpeg') no-repeat center/cover, radial-gradient(black, rgba(0,150,150,.2)); background-blend-mode: screen; box-shadow: 3px 3px 20px #000; overflow: hidden; position: relative; z-index: 1; }
        #lrc { position: absolute; top: 10px; font: bold 2.4em sans-serif; color: gray; text-shadow: 1px 1px 1px rgba(250,250,250,.45); --ani: lrcGo1; --duration: 1s; }
        #lrc::before { position: absolute; content: attr(data-lrc); width: 100%; height: 100%; color: transparent; background: repeating-radial-gradient(circle, orange, snow 28px); background-clip: text; -webkit-background-clip: text; clip-path: inset(0 100% 0 0); animation: var(--ani) var(--duration) linear forwards var(--state); border-bottom: 2px dotted gray; }
        #mplayer { position: absolute; bottom: 10px; text-align: center; color: lightblue; }
        #mplayer::before { position: absolute; content: attr(data-tt); left: 0; bottom: 25px; width: 100%; text-align-last: justify; }
        #mprog { width: 280px; accent-color: orange; outline: none; cursor: pointer; opacity: .7; }
        #mprog:focus { accent-color: gold; }
        #btnplay { width: 50px; height: 50px; cursor: pointer; animation: rotating 6s infinite linear var(--state); }
        #btnplay:hover { filter: invert(.2); }
        li-zi { position: absolute; background: url('https://638183.freep.cn/638183/t23/btn/y5j.png') no-repeat center/cover; offset-path: path('M0 400 Q570 -260 1140 400'); offset-distance: 0; animation: move 10s linear infinite var(--state), rotating 5s infinite var(--state); }
        @keyframes rotating { to { transform: rotate(360deg); } }
        @keyframes lrcGo0 { to { clip-path: inset(0 0 0 0); } }
        @keyframes lrcGo1 { to { clip-path: inset(0 0 0 0); } }
        @keyframes move { to { offset-distance: 100%; } }
</style>

<div id="papa">
        <audio src="https://music.163.com/song/media/outer/url?id=2016147084"></audio>
        <div id="mplayer" data-tt="0:00 0:00">
                <img id="btnplay" src="https://638183.freep.cn/638183/t23/btn/y5j.png" alt="" /><br>
                <input id="mprog" type="range" min="0" max="100" step="any" value="0" title="调节进度"    />
        </div>
        <div id="lrc" data-lrc="HuaChao LRC">HuaChao LRC</div>
</div>

<script>
var geci = [ , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ];
var sF = document.createElement('script');
sF.charset = 'utf-8';
sF.src = 'https://638183.freep.cn/638183/web/js/rangelrc2024-01.js';
document.querySelector('body').appendChild(sF);
sF.onload = () => {
        Array.from({length: all=40}).forEach(star => {
                var size = 30 + Math.floor(Math.random() * 30);
                star = document.createElement('li-zi');
                star.style.cssText += `
                        left: 0;
                        top: ${Math.random() * 140 + 60}px;
                        width: ${size}px;
                        height: ${size}px;
                        opacity: ${Math.random() * 0.4 + 0.4};
                        animation-delay: -${Math.random() * 10}s, -${Math.random() * 5}s;
                `;
                papa.prepend(star);
        });
};
</script>

马黑黑 发表于 2024-2-28 08:45

本帖最后由 马黑黑 于 2024-2-28 08:46 编辑 <br /><br /><h2>帖子代码</h2>
<style>
.mum { position: relative; margin: 0; padding: 10px; font: normal 16px/20px Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; color: black; background: rgba(240, 240, 240,.95); box-shadow: 2px 2px 4px gray; border: thick groove lightblue; border-radius: 6px; }
.mum ::selection { background-color: rgba(0,100,100,.35); }
.mum div { margin: 0; padding: 0; }
.mum cl-cd { display: block; position: relative; margin: 0 0 0 50px; padding: 0 0 0 10px; white-space: pre-wrap; overflow-wrap: break-word; border-left: 1px solid silver; }
.mum cl-cd::before { position: absolute; content: attr(data-idx); width: 50px; color: gray; text-align: right; transform: translate(-70px); }
.tRed { color: red; }
.tBlue { color: blue; }
.tGreen { color: green; }
.tDarkRed { color: darkred; }
.tMagenta { color: magenta; }
</style>
<div class='mum'>
<cl-cd data-idx="1">&lt;style&gt;</cl-cd>
<cl-cd data-idx="2">&nbsp; &nbsp; #papa { <span class="tBlue">margin:</span> 0 0 0 calc(50% - 621px); <span class="tBlue">display:</span> grid; <span class="tBlue">place-items:</span> center; <span class="tBlue">width:</span> 1080px; <span class="tBlue">height:</span> 683px; <span class="tBlue">background:</span> url(<span class="tMagenta">'https://638183.freep.cn/638183/t24/1/bbce.jpeg'</span>) no-repeat center/cover, radial-gradient(black, rgba(0,150,150,.2)); <span class="tBlue">background-blend-mode:</span> screen; <span class="tBlue">box-shadow:</span> 3px 3px 20px #000; <span class="tBlue">overflow:</span> hidden; <span class="tBlue">position:</span> relative; <span class="tBlue">z-index:</span> 1; }</cl-cd>
<cl-cd data-idx="3">&nbsp; &nbsp; #lrc { <span class="tBlue">position:</span> absolute; <span class="tBlue">top:</span> 10px; <span class="tBlue">font:</span> bold 2.4em sans-serif; <span class="tBlue">color:</span> gray; <span class="tBlue">text-shadow:</span> 1px 1px 1px rgba(250,250,250,.45); <span class="tBlue">--ani:</span> lrcGo1; <span class="tBlue">--duration:</span> 1s; }</cl-cd>
<cl-cd data-idx="4">&nbsp; &nbsp; #lrc::before { <span class="tBlue">position:</span> absolute; <span class="tBlue">content:</span> attr(data-lrc); <span class="tBlue">width:</span> 100%; <span class="tBlue">height:</span> 100%; <span class="tBlue">color:</span> transparent; <span class="tBlue">background:</span> repeating-radial-gradient(circle, orange, snow 28px); <span class="tBlue">background-clip:</span> text; <span class="tBlue">-webkit-background-clip:</span> text; <span class="tBlue">clip-path:</span> inset(0 100% 0 0); <span class="tBlue">animation:</span> <span class="tBlue">var</span>(--ani) <span class="tBlue">var</span>(--duration) linear forwards <span class="tBlue">var</span>(--state); <span class="tBlue">border-bottom:</span> 2px dotted gray; }</cl-cd>
<cl-cd data-idx="5">&nbsp; &nbsp; #mplayer { <span class="tBlue">position:</span> absolute; <span class="tBlue">bottom:</span> 10px; <span class="tBlue">text-align:</span> center; <span class="tBlue">color:</span> lightblue; }</cl-cd>
<cl-cd data-idx="6">&nbsp; &nbsp; #mplayer::before { <span class="tBlue">position:</span> absolute; <span class="tBlue">content:</span> attr(data-tt); <span class="tBlue">left:</span> 0; <span class="tBlue">bottom:</span> 25px; <span class="tBlue">width:</span> 100%; <span class="tBlue">text-align-last:</span> justify; }</cl-cd>
<cl-cd data-idx="7">&nbsp; &nbsp; #mprog { <span class="tBlue">width:</span> 280px; <span class="tBlue">accent-color:</span> orange; <span class="tBlue">outline:</span> none; <span class="tBlue">cursor:</span> pointer; <span class="tBlue">opacity:</span> .7; }</cl-cd>
<cl-cd data-idx="8">&nbsp; &nbsp; #<span class="tBlue">mprog:</span>focus { <span class="tBlue">accent-color:</span> gold; }</cl-cd>
<cl-cd data-idx="9">&nbsp; &nbsp; #btnplay { <span class="tBlue">width:</span> 50px; <span class="tBlue">height:</span> 50px; <span class="tBlue">cursor:</span> pointer; <span class="tBlue">animation:</span> rotating 6s infinite linear <span class="tBlue">var</span>(--state); }</cl-cd>
<cl-cd data-idx="10">&nbsp; &nbsp; #<span class="tBlue">btnplay:</span>hover { <span class="tBlue">filter:</span> invert(.2); }</cl-cd>
<cl-cd data-idx="11">&nbsp; &nbsp; li-zi { <span class="tBlue">position:</span> absolute; <span class="tBlue">background:</span> url(<span class="tMagenta">'https://638183.freep.cn/638183/t23/btn/y5j.png'</span>) no-repeat center/cover; <span class="tBlue">offset-path:</span> path(<span class="tMagenta">'M0 400 Q570 -260 1140 400'</span>); <span class="tBlue">offset-distance:</span> 0; <span class="tBlue">animation:</span> move 10s linear infinite <span class="tBlue">var</span>(--state), rotating 5s infinite <span class="tBlue">var</span>(--state); }</cl-cd>
<cl-cd data-idx="12">&nbsp; &nbsp; @keyframes rotating { to { <span class="tBlue">transform:</span> rotate(360deg); } }</cl-cd>
<cl-cd data-idx="13">&nbsp; &nbsp; @keyframes lrcGo0 { to { <span class="tBlue">clip-path:</span> inset(0 0 0 0); } }</cl-cd>
<cl-cd data-idx="14">&nbsp; &nbsp; @keyframes lrcGo1 { to { <span class="tBlue">clip-path:</span> inset(0 0 0 0); } }</cl-cd>
<cl-cd data-idx="15">&nbsp; &nbsp; @keyframes move { to { <span class="tBlue">offset-distance:</span> 100%; } }</cl-cd>
<cl-cd data-idx="16">&lt;/style&gt;</cl-cd>
<cl-cd data-idx="17"><br></cl-cd>
<cl-cd data-idx="18">&lt;div <span class="tRed">id</span>=<span class="tMagenta">"papa"</span>&gt;</cl-cd>
<cl-cd data-idx="19">&nbsp; &nbsp; &lt;audio src=<span class="tMagenta">"https://music.163.com/song/media/outer/url?<span class="tRed">id</span>=2016147084"</span>&gt;&lt;/audio&gt;</cl-cd>
<cl-cd data-idx="20">&nbsp; &nbsp; &lt;div <span class="tRed">id</span>=<span class="tMagenta">"mplayer"</span> data-tt=<span class="tMagenta">"0:00 0:00"</span>&gt;</cl-cd>
<cl-cd data-idx="21">&nbsp; &nbsp; &nbsp; &nbsp; &lt;img <span class="tRed">id</span>=<span class="tMagenta">"btnplay"</span> src=<span class="tMagenta">"https://638183.freep.cn/638183/t23/btn/y5j.png"</span> alt=<span class="tMagenta">""</span> /&gt;&lt;br&gt;</cl-cd>
<cl-cd data-idx="22">&nbsp; &nbsp; &nbsp; &nbsp; &lt;input <span class="tRed">id</span>=<span class="tMagenta">"mprog"</span> type=<span class="tMagenta">"range"</span> min=<span class="tMagenta">"0"</span> max=<span class="tMagenta">"100"</span> step=<span class="tMagenta">"any"</span> value=<span class="tMagenta">"0"</span> title=<span class="tMagenta">"调节进度"</span>    /&gt;</cl-cd>
<cl-cd data-idx="23">&nbsp; &nbsp; &lt;/div&gt;</cl-cd>
<cl-cd data-idx="24">&nbsp; &nbsp; &lt;div <span class="tRed">id</span>=<span class="tMagenta">"lrc"</span> data-lrc=<span class="tMagenta">"HuaChao LRC"</span>&gt;HuaChao LRC&lt;/div&gt;</cl-cd>
<cl-cd data-idx="25">&lt;/div&gt;</cl-cd>
<cl-cd data-idx="26"><br></cl-cd>
<cl-cd data-idx="27">&lt;script&gt;</cl-cd>
<cl-cd data-idx="28"><span class="tBlue">var</span> geci = [ , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ];</cl-cd>
<cl-cd data-idx="29"><span class="tBlue">var</span> sF = <span class="tRed">document</span>.createElement(<span class="tMagenta">'script'</span>);</cl-cd>
<cl-cd data-idx="30">sF.charset = <span class="tMagenta">'utf-8'</span>;</cl-cd>
<cl-cd data-idx="31">sF.src = <span class="tMagenta">'https://638183.freep.cn/638183/web/js/rangelrc2024-01.js'</span>;</cl-cd>
<cl-cd data-idx="32"><span class="tRed">document</span>.querySelector(<span class="tMagenta">'body'</span>).appendChild(sF);</cl-cd>
<cl-cd data-idx="33">sF.onload = () =&gt; {</cl-cd>
<cl-cd data-idx="34">&nbsp; &nbsp; <span class="tRed">Array</span>.from({<span class="tBlue">length:</span> all=40}).forEach(star =&gt; {</cl-cd>
<cl-cd data-idx="35">&nbsp; &nbsp; &nbsp; &nbsp; <span class="tBlue">var</span> size = 30 + <span class="tRed">Math</span>.floor(<span class="tRed">Math</span>.random() * 30);</cl-cd>
<cl-cd data-idx="36">&nbsp; &nbsp; &nbsp; &nbsp; star = <span class="tRed">document</span>.createElement(<span class="tMagenta">'li-zi'</span>);</cl-cd>
<cl-cd data-idx="37">&nbsp; &nbsp; &nbsp; &nbsp; star.style.cssText += `</cl-cd>
<cl-cd data-idx="38">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="tBlue">left:</span> 0;</cl-cd>
<cl-cd data-idx="39">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="tBlue">top:</span> ${<span class="tRed">Math</span>.random() * 140 + 60}px;</cl-cd>
<cl-cd data-idx="40">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="tBlue">width:</span> ${size}px;</cl-cd>
<cl-cd data-idx="41">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="tBlue">height:</span> ${size}px;</cl-cd>
<cl-cd data-idx="42">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="tBlue">opacity:</span> ${<span class="tRed">Math</span>.random() * 0.4 + 0.4};</cl-cd>
<cl-cd data-idx="43">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="tBlue">animation-delay:</span> -${<span class="tRed">Math</span>.random() * 10}s, -${<span class="tRed">Math</span>.random() * 5}s;</cl-cd>
<cl-cd data-idx="44">&nbsp; &nbsp; &nbsp; &nbsp; `;</cl-cd>
<cl-cd data-idx="45">&nbsp; &nbsp; &nbsp; &nbsp; papa.prepend(star);</cl-cd>
<cl-cd data-idx="46">&nbsp; &nbsp; });</cl-cd>
<cl-cd data-idx="47">};</cl-cd>
<cl-cd data-idx="48">&lt;/script&gt;</cl-cd>
</div>

醉美水芙蓉 发表于 2024-2-28 10:27

红影 发表于 2024-2-28 13:50

按钮和粒子都是这些可爱的小星星呢,真美。
粒子用JS加了那么多大小不一、明暗相间、轨迹错落的小星星,增添了许多活泼的趣味{:4_199:}

红影 发表于 2024-2-28 13:53

歌词的景象渐变也很漂亮,跟小星星那么搭配。
歌词的内容很喜庆呢,很适合灯节。这个帖子太完美了{:4_199:}

樵歌 发表于 2024-2-28 14:23

太太完美鸟{:4_195:}

樵歌 发表于 2024-2-28 14:25

仔细看了这歌词也写得特别好。

梦油 发表于 2024-2-28 14:32

嗬!璀璨夺目、灿若繁星,太美啦!歌曲也很好听。{:5_116:}

执著 发表于 2024-2-28 21:36

老师的音画好漂亮啊!好想学习也制作一下,不知道如何下手

执著 发表于 2024-2-28 21:36

老师的音画好漂亮啊!好想学习也制作一下,不知道如何下手

马黑黑 发表于 2024-2-28 21:37

执著 发表于 2024-2-28 21:36
老师的音画好漂亮啊!好想学习也制作一下,不知道如何下手

如果没有代码基础,就先套用,换个图片,换个音乐,换个按钮啥的

执著 发表于 2024-2-28 21:44

马黑黑 发表于 2024-2-28 21:37
如果没有代码基础,就先套用,换个图片,换个音乐,换个按钮啥的

好的,谢谢老师指点

马黑黑 发表于 2024-2-28 21:57

执著 发表于 2024-2-28 21:44
好的,谢谢老师指点

{:4_190:}

南无月 发表于 2024-2-29 17:14

灯光璀璨。锣鼓喧天。。。有仪式感的节日贴。。。

南无月 发表于 2024-2-29 17:14

星星点灯。。。

马黑黑 发表于 2024-2-29 18:28

南无月 发表于 2024-2-29 17:14
星星点灯。。。

点着木有

南无月 发表于 2024-2-29 18:30

马黑黑 发表于 2024-2-29 18:28
点着木有

木有不可能滴

马黑黑 发表于 2024-2-29 18:34

南无月 发表于 2024-2-29 18:30
木有不可能滴

那太厉害了

南无月 发表于 2024-2-29 18:45

马黑黑 发表于 2024-2-29 18:34
那太厉害了

木有是不可能滴。。
厉害是木有滴

马黑黑 发表于 2024-2-29 19:32

南无月 发表于 2024-2-29 18:45
木有是不可能滴。。
厉害是木有滴

也许厉害就是厉害
页: [1] 2 3
查看完整版本: 千灯展卷