南无月 发表于 2024-2-20 17:25

南无月试贴

本帖最后由 南无月 于 2024-8-3 21:03 编辑 <br /><br /><style>
#mydiv {
        margin: 30px 0 30px calc(50% - 931px);
        width: 1700px;
        height:900px;
        background: url('https://pic.imgdb.cn/item/66ae2051d9c307b7e9ddd76d.jpg') no-repeat center/cover;
        display: grid;
        place-items: center;
        pointer-events: none;
        box-shadow: 0 0 6px rgba(0,0,0,.6);
        z-index: 1;
        position: relative;
        overflow: hidden;
        --conic: 2%;
}
#mydiv::before {
        position: absolute;
        content: '';
        top: 0px;
        width: 1700px;
        height:900px;
        background: url('https://pic.imgdb.cn/item/66ae12fed9c307b7e9c98879.png') no-repeat center/cover;
        z-index: 5;
}

#mydiv::after {
        position: absolute;
        content: '';
        left:160px;
        bottom: 300px;
        width: 120px;
        height: 120px;
        background: repeating-conic-gradient(transparent, CadetBlue, transparent 6% var(--conic));
        -webkit-mask: url('https://638183.freep.cn/638183/small/7s.png') no-repeat center/cover;
        pointer-events: auto;
        cursor: pointer;
        animation: rot 8s linear infinite var(--state);
        transform: rotate(var(--deg));
        z-index: 4;
}

#mydiv:hover::after { --conic: 6%; filter: hue-rotate(210deg);}
#vid1 {
        top:-80px;
        position: absolute;
        width: 100%;
        height: 100%;
        object-fit: cover;
        -webkit-mask: linear-gradient(to top, transparent,red);
        z-index: 2;
}
#vid2 {
        bottom:-100px;
        position: absolute;
        width: 100%;
        height: 80%;
        opacity: .80;
        object-fit: cover;
        mix-blend-mode: multiply;
        -webkit-mask: linear-gradient(to bottom,transparent,transparent, red);
        z-index: 3;
}
@keyframes rot {
        to { transform: rotate(1turn); }
}
</style>

<div id="mydiv">
        <audio id="aud" src="https://music.163.com/song/media/outer/url?id=1485774690" autoplay loop></audio>
        <video id="vid1" src="https://img.tukuppt.com/video_show/2418175/00/01/72/5b49440ab4e45.mp4" autoplay loop muted></video>
        <video id="vid2" src="https://img.tukuppt.com/video_show/2475824/00/01/72/5b492fae7af99.mp4" autoplay loop muted></video>
</div>

<script>
aud.oncanplay = aud.onplaying = aud.onpause = () => {
        mydiv.style.setProperty('--state', aud.paused ? 'paused' : 'running');
        aud.paused ? (vid1.pause(), vid2.pause()): (vid1.play(), vid2.play());
};
mydiv.onclick = () => aud.paused ? aud.play() : aud.pause();
</script>

南无月 发表于 2024-3-22 12:39

本帖最后由 南无月 于 2024-3-22 12:40 编辑 <br /><br /><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;<span class="tDarkRed">style</span>&gt;</cl-cd>
<cl-cd data-idx="2">&nbsp; &nbsp; #papa { <span class="tBlue">margin:</span> 130px 0 20px calc(50% - 931px); <span class="tBlue">width:</span> 1700px; <span class="tBlue">height:</span> 900px; <span class="tBlue">background:</span> url(<span class="tMagenta">'https://pic.imgdb.cn/item/65fbae639f345e8d03723b84.webp'</span>) no-repeat center/cover; <span class="tBlue">box-shadow:</span> 3px 3px 6px gray; <span class="tBlue">overflow:</span> hidden; <span class="tBlue">position:</span> relative; }</cl-cd>
<cl-cd data-idx="3">&nbsp; &nbsp; #canv { <span class="tBlue">position:</span> absolute; <span class="tBlue">left:</span> 28%; <span class="tBlue">bottom:</span> 4px; <span class="tBlue">transform:</span> translate(-50%,0); <span class="tBlue">cursor:</span> pointer; }</cl-cd>
<cl-cd data-idx="4">&nbsp; &nbsp; .pic { <span class="tBlue">position:</span> absolute; <span class="tBlue">width:</span> 240px; <span class="tBlue">mix-blend-mode:</span> screen; <span class="tBlue">offset-path:</span> path(<span class="tMagenta">'M1724,-80 Q1550,-20 -100,360'</span>); <span class="tBlue">offset-distance:</span> 100%; <span class="tBlue">animation:</span> fly 20s <span class="tBlue">var</span>(--delay) infinite <span class="tBlue">var</span>(--state); <span class="tBlue">--delay:</span> 0s; }</cl-cd>
<cl-cd data-idx="5">&nbsp; &nbsp; .<span class="tBlue">pic:</span>nth-of-type(2) { <span class="tBlue">--delay:</span> -7s; }</cl-cd>
<cl-cd data-idx="6">&nbsp; &nbsp; .<span class="tBlue">pic:</span>nth-of-type(3) { <span class="tBlue">--delay:</span> -14s; }</cl-cd>
<cl-cd data-idx="7">&nbsp; &nbsp; @keyframes fly { to { <span class="tBlue">offset-distance:</span> 0; } }</cl-cd>
<cl-cd data-idx="8">&nbsp; &nbsp; #vid { <span class="tBlue">position:</span> absolute; <span class="tBlue">width:</span> 120%; <span class="tBlue">height:</span> 100%; <span class="tBlue">object-fit:</span> cover; <span class="tBlue">pointer-events:</span> none; <span class="tBlue">mix-blend-mode:</span> screen; <span class="tBlue">z-index:</span> 2; <span class="tBlue">opacity:</span> .52; <span class="tBlue">transform:</span> rotateY(180deg); }</cl-cd>
<cl-cd data-idx="9">&lt;<span class="tDarkRed">/style</span>&gt;</cl-cd>
<cl-cd data-idx="10"> </cl-cd>
<cl-cd data-idx="11">&lt;<span class="tDarkRed">div</span> <span class="tRed">id</span>=<span class="tMagenta">"papa"</span>&gt;</cl-cd>
<cl-cd data-idx="12">&lt;<span class="tDarkRed">video</span> <span class="tRed">id</span>=<span class="tMagenta">"vid"</span> src=<span class="tMagenta">"https://img.tukuppt.com/video_show/15653652/00/79/55/60c1c62b9766e.mp4"</span> autoplay=<span class="tMagenta">""</span> loop=<span class="tMagenta">""</span> muted=<span class="tMagenta">""</span>&gt;&lt;<span class="tDarkRed">/video</span>&gt;</cl-cd>
<cl-cd data-idx="13">&nbsp; &nbsp; &lt;<span class="tDarkRed">img</span> class=<span class="tMagenta">"pic"</span> src=<span class="tMagenta">"https://638183.freep.cn/638183/t22/gif/bird1.gif"</span> alt=<span class="tMagenta">""</span> /&gt;</cl-cd>
<cl-cd data-idx="14">&nbsp; &nbsp; &lt;<span class="tDarkRed">img</span> class=<span class="tMagenta">"pic"</span> src=<span class="tMagenta">"https://638183.freep.cn/638183/t22/gif/bird1.gif"</span> alt=<span class="tMagenta">""</span> /&gt;</cl-cd>
<cl-cd data-idx="15">&nbsp; &nbsp; &lt;<span class="tDarkRed">img</span> class=<span class="tMagenta">"pic"</span> src=<span class="tMagenta">"https://638183.freep.cn/638183/t22/gif/bird1.gif"</span> alt=<span class="tMagenta">""</span> /&gt;</cl-cd>
<cl-cd data-idx="16">    &lt;<span class="tDarkRed">canvas</span> <span class="tRed">id</span>=<span class="tMagenta">"canv"</span> width=<span class="tMagenta">"600"</span> height=<span class="tMagenta">"240"</span> title=<span class="tMagenta">"点击播放"</span>&gt;&lt;<span class="tDarkRed">/canvas</span>&gt;</cl-cd>
<cl-cd data-idx="17">&lt;<span class="tDarkRed">/div</span>&gt;</cl-cd>
<cl-cd data-idx="18"> </cl-cd>
<cl-cd data-idx="19">&lt;<span class="tDarkRed">script</span>&gt;</cl-cd>
<cl-cd data-idx="20">&nbsp;</cl-cd>
<cl-cd data-idx="21">(<span class="tBlue">function</span>() {</cl-cd>
<cl-cd data-idx="22">&nbsp;</cl-cd>
<cl-cd data-idx="23"><span class="tBlue">let</span> aud = <span class="tBlue">new</span> Audio();</cl-cd>
<cl-cd data-idx="24">aud.src = <span class="tMagenta">'https://yinpin.s3-us-east-1.ossfiles.com/qihang.mp3'</span>;</cl-cd>
<cl-cd data-idx="25">aud.crossOrigin = <span class="tMagenta">''</span>;</cl-cd>
<cl-cd data-idx="26">aud.loop = true; </cl-cd>
<cl-cd data-idx="27">aud.load();</cl-cd>
<cl-cd data-idx="28">aud.play();</cl-cd>
<cl-cd data-idx="29"><span class="tBlue">let</span> AudioContext = <span class="tRed">window</span>.AudioContext || <span class="tRed">window</span>.webkitAudioContext;</cl-cd>
<cl-cd data-idx="30"><span class="tBlue">let</span> Ac = <span class="tBlue">new</span> AudioContext;</cl-cd>
<cl-cd data-idx="31"><span class="tBlue">let</span> analyser = Ac.createAnalyser();</cl-cd>
<cl-cd data-idx="32">analyser.fftSize = 256;</cl-cd>
<cl-cd data-idx="33"><span class="tBlue">let</span> source = Ac.createMediaElementSource(aud);</cl-cd>
<cl-cd data-idx="34">source.connect(analyser);</cl-cd>
<cl-cd data-idx="35">analyser.connect(Ac.destination);</cl-cd>
<cl-cd data-idx="36"><span class="tBlue">let</span> len = analyser.frequencyBinCount - 30;</cl-cd>
<cl-cd data-idx="37"><span class="tBlue">let</span> output = <span class="tBlue">new</span> Uint8Array(len);</cl-cd>
<cl-cd data-idx="38"><span class="tBlue">let</span> canvctx = canv.getContext(<span class="tMagenta">'2d'</span>);</cl-cd>
<cl-cd data-idx="39"><span class="tBlue">let</span> ppWidth = canv.width / len; </cl-cd>
<cl-cd data-idx="40"><span class="tBlue">let</span> ppHeight, x;</cl-cd>
<cl-cd data-idx="41"><span class="tBlue">let</span> gradient = canvctx.createLinearGradient(0,0,0,200);</cl-cd>
<cl-cd data-idx="42">gradient.addColorStop(0,<span class="tMagenta">'rgba(255,165,0'</span>); </cl-cd>
<cl-cd data-idx="43">gradient.addColorStop(.5,<span class="tMagenta">'rgba(255,165,0'</span>); </cl-cd>
<cl-cd data-idx="44">gradient.addColorStop(1,<span class="tMagenta">'rgba(128,128,128'</span>);</cl-cd>
<cl-cd data-idx="45">(<span class="tBlue">function</span> draw() {</cl-cd>
<cl-cd data-idx="46">    canvctx.clearRect(0, 0, canv.width, canv.height);</cl-cd>
<cl-cd data-idx="47">    analyser.getByteFrequencyData(output);</cl-cd>
<cl-cd data-idx="48">    x = 0.5; </cl-cd>
<cl-cd data-idx="49">    <span class="tBlue">for</span>(<span class="tBlue">let</span> i = 0; i &lt; len; i ++) {</cl-cd>
<cl-cd data-idx="50">      ppHeight = output * .9 + ppWidth;</cl-cd>
<cl-cd data-idx="51">      canvctx.fillStyle = gradient;</cl-cd>
<cl-cd data-idx="52">      canvctx.fillRect(x, canv.height - ppHeight, ppWidth - 1, ppHeight);</cl-cd>
<cl-cd data-idx="53">      x += ppWidth;</cl-cd>
<cl-cd data-idx="54">    }</cl-cd>
<cl-cd data-idx="55">    requestAnimationFrame(draw); </cl-cd>
<cl-cd data-idx="56">})();</cl-cd>
<cl-cd data-idx="57">aud.onpause = aud.onplaying = () =&gt; aud.paused ?</cl-cd>
<cl-cd data-idx="58">&nbsp; &nbsp; (canv.title = <span class="tMagenta">'点击播放'</span>, papa.style.setProperty(<span class="tMagenta">'--state'</span>, <span class="tMagenta">'paused'</span>)) :</cl-cd>
<cl-cd data-idx="59">&nbsp; &nbsp; (canv.title = <span class="tMagenta">'点击暂停'</span>, papa.style.setProperty(<span class="tMagenta">'--state'</span>, <span class="tMagenta">'running'</span>));</cl-cd>
<cl-cd data-idx="60">canv.onclick = () =&gt; aud.paused ? aud.play() : aud.pause();</cl-cd>
<cl-cd data-idx="61"><span class="tGreen">//papa.onclick = () =&gt; aud.paused ? (vid.pause(),vid2.pause()) : (vid.play(),vid2.play()); </span></cl-cd>
<cl-cd data-idx="62">&nbsp;</cl-cd>
<cl-cd data-idx="63">})();</cl-cd>
<cl-cd data-idx="64">&lt;<span class="tDarkRed">/script</span>&gt;</cl-cd>
</div>

南无月 发表于 2024-3-22 12:41

我的浏览器不行么,还是看不到频谱。@马黑黑

南无月 发表于 2024-3-22 12:46

虽然不知道JS代码闭包啥意思{:4_173:}
电脑落后我知道,现在我用手机看看——也没显示频谱

马黑黑 发表于 2024-3-22 13:20

南无月 发表于 2024-3-22 12:41
我的浏览器不行么,还是看不到频谱。@马黑黑

昨晚测试时行的,现在又不行了

马黑黑 发表于 2024-3-22 13:21

南无月 发表于 2024-3-22 12:46
虽然不知道JS代码闭包啥意思
电脑落后我知道,现在我用手机看看——也没显示频谱
音乐也不能播放。本地测试没有问题,甚至可以不开启虚拟服务器。

马黑黑 发表于 2024-3-22 13:38

<p>现在行了。踩了一个坑,这个坑过去也踩过:<br><br></p>

<p>论坛对 会做ubb解析,要写成 [ i ],i 的两边逗留空格。另外我在《三十里铺》发布的代码多出两行废码,现已修正。</p>

南无月 发表于 2024-3-22 17:41

马黑黑 发表于 2024-3-22 13:38
现在行了。踩了一个坑,这个坑过去也踩过:

论坛对会做ubb解析,要写成 [ i ],i 的两边逗留空格。另 ...

这个坑时有时无啊。。
经常有也就记得了。。
这么突然的跳出一个,也是费劲{:4_173:}

南无月 发表于 2024-3-22 17:42

马黑黑 发表于 2024-3-22 13:20
昨晚测试时行的,现在又不行了

这天家小坑有规律么 {:4_170:}

南无月 发表于 2024-3-22 17:43

马黑黑 发表于 2024-3-22 13:21
音乐也不能播放。本地测试没有问题,甚至可以不开启虚拟服务器。

音画编辑里完全没问题,甚至到别的论坛测试都没问题。。{:4_173:}所以我也是纳了闷了

马黑黑 发表于 2024-3-22 18:59

南无月 发表于 2024-3-22 17:43
音画编辑里完全没问题,甚至到别的论坛测试都没问题。。所以我也是纳了闷了

Discuz! X3.2 就是问题好多的,它的错误很多,按F12看看

马黑黑 发表于 2024-3-22 19:00

南无月 发表于 2024-3-22 17:41
这个坑时有时无啊。。
经常有也就记得了。。
这么突然的跳出一个,也是费劲

过去碰上时,我就改用 j 做循环自增变量,后来用着用着就忘记了这回事,毕竟在本地机测试无需考虑这些

南无月 发表于 2024-3-22 20:57

马黑黑 发表于 2024-3-22 18:59
Discuz! X3.2 就是问题好多的,它的错误很多,按F12看看

不看。。。按了一堆乱码又看不懂

南无月 发表于 2024-3-22 20:57

马黑黑 发表于 2024-3-22 19:00
过去碰上时,我就改用 j 做循环自增变量,后来用着用着就忘记了这回事,毕竟在本地机测试无需考虑这些

这个问题是好久之前的,至少半年前。。{:4_170:}

马黑黑 发表于 2024-3-22 20:58

南无月 发表于 2024-3-22 20:57
不看。。。按了一堆乱码又看不懂

反正每行标注一个红圆圈里面有叉叉的就是错误

马黑黑 发表于 2024-3-22 20:59

南无月 发表于 2024-3-22 20:57
这个问题是好久之前的,至少半年前。。

不止半年了。都说好了伤疤忘了疼,此话不假

南无月 发表于 2024-3-23 16:59

马黑黑 发表于 2024-3-22 20:58
反正每行标注一个红圆圈里面有叉叉的就是错误

传说中的F12,听你说过无数次,从来没真的实际用过

南无月 发表于 2024-3-23 17:02

马黑黑 发表于 2024-3-22 20:59
不止半年了。都说好了伤疤忘了疼,此话不假

动网程序这个小BUG,亏是你能找到并解决,这么久它也没升级。
不过升了级又被限,好象还是这样的好。。{:4_173:}

马黑黑 发表于 2024-3-23 18:15

南无月 发表于 2024-3-23 17:02
动网程序这个小BUG,亏是你能找到并解决,这么久它也没升级。
不过升了级又被限,好象还是这样的好。。{ ...

动网死掉了,现在是 discuz! 的天下,湾湾那边也都在用,目前由腾讯维护,早升级了的,是樵歌的论坛不敢更新。

马黑黑 发表于 2024-3-23 18:15

南无月 发表于 2024-3-23 16:59
传说中的F12,听你说过无数次,从来没真的实际用过

就按一下它,然后一般向右看
页: [1] 2 3 4 5 6
查看完整版本: 南无月试贴