本帖最后由 花简静 于 2024-12-22 21:56 编辑
<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"><<span class="tDarkRed">style</span>></cl-cd>
<cl-cd data-idx="2"> #mydiv { <span class="tBlue">margin:</span> 130px 0 30px 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://642303.freep.cn/642303/tu/20241102ylxb06.webp'</span>) no-repeat center/cover; <span class="tBlue">box-shadow:</span> 4px 4px 8px gray; <span class="tBlue">position:</span> relative; <span class="tBlue">--state:</span> running; <span class="tBlue">overflow:</span> hidden;}</cl-cd>
<cl-cd data-idx="3"> #msvg { <span class="tBlue">position:</span> absolute; <span class="tBlue">left:</span> calc(50% - 60px); <span class="tBlue">bottom:</span> 180px; <span class="tBlue">cursor:</span> pointer; <span class="tBlue">animation:</span> rot 1s linear infinite <span class="tBlue">var</span>(--state); }</cl-cd>
<cl-cd data-idx="4"> #msvg ellipse { <span class="tBlue">transition:</span> .5s; }</cl-cd>
<cl-cd data-idx="5"> #<span class="tBlue">msvg:</span>hover ellipse { <span class="tBlue">ry:</span> 20; }</cl-cd>
<cl-cd data-idx="6"> #vid { <span class="tBlue">position:</span> absolute; <span class="tBlue">width:</span> 30%; <span class="tBlue">height:</span> 30%;<span class="tBlue">bottom:</span>230px;<span class="tBlue">left:</span>630px; <span class="tBlue">object-fit:</span> cover; <span class="tBlue">mix-blend-mode:</span> screen; <span class="tBlue">-webkit-mask:</span> radial-gradient(circle, cyan, cyan,rgba(0,0,0,.35),transparent, transparent, transparent); <span class="tBlue">pointer-events:</span> none;<span class="tBlue">opacity:</span> 0.43; }</cl-cd>
<cl-cd data-idx="7"> #vid1 { <span class="tBlue">position:</span> absolute; <span class="tBlue">width:</span> 100%; <span class="tBlue">height:</span> 100%; <span class="tBlue">bottom:</span>-20px;<span class="tBlue">object-fit:</span> cover; <span class="tBlue">mix-blend-mode:</span> screen; <span class="tBlue">-webkit-mask:</span> linear-gradient(transparent 20%, red 50%, red 0); <span class="tBlue">pointer-events:</span> none;<span class="tBlue">opacity:</span> 0.23; }</cl-cd>
<cl-cd data-idx="8"> #fsbtn { <span class="tBlue">position:</span> absolute; <span class="tBlue">left:</span> 5%; <span class="tBlue">bottom:</span> 20px; <span class="tBlue">color:</span> #859777; <span class="tBlue">background:</span> transparent; <span class="tBlue">padding:</span> 4px 6px; <span class="tBlue">border:</span> 2px solid #859777; <span class="tBlue">border-radius:</span> 8px; <span class="tBlue">user-select:</span> none; <span class="tBlue">cursor:</span> pointer; <span class="tBlue">transition:</span> .5s; }</cl-cd>
<cl-cd data-idx="9"> @keyframes rot { to { <span class="tBlue">transform:</span> rotate(360deg); } }</cl-cd>
<cl-cd data-idx="10"><<span class="tDarkRed">/style</span>></cl-cd>
<cl-cd data-idx="11"> </cl-cd>
<cl-cd data-idx="12"><<span class="tDarkRed">div</span> <span class="tRed">id</span>=<span class="tMagenta">"mydiv"</span>></cl-cd>
<cl-cd data-idx="13"> <<span class="tDarkRed">audio</span> <span class="tRed">id</span>=<span class="tMagenta">"aud"</span> src=<span class="tMagenta">"https://music.163.com/song/media/outer/url?<span class="tRed">id</span>=1941982"</span> autoplay loop><<span class="tDarkRed">/audio</span>></cl-cd>
<cl-cd data-idx="14"> <<span class="tDarkRed">video</span> <span class="tRed">id</span>=<span class="tMagenta">"vid"</span> src=<span class="tMagenta">"https://bpic.588ku.com/video_listen/588ku_preview/19/04/19/14/38/07/video5cb96ccfb4f1a.mp4"</span> autoplay loop muted><<span class="tDarkRed">/video</span>></cl-cd>
<cl-cd data-idx="15"> <<span class="tDarkRed">video</span> <span class="tRed">id</span>=<span class="tMagenta">"vid1"</span> src=<span class="tMagenta">"https://bpic.588ku.com/video_listen/588ku_preview/23/09/25/19/09/43/video65116a7746f5a.mp4"</span> autoplay loop muted><<span class="tDarkRed">/video</span>></cl-cd>
<cl-cd data-idx="16"> <<span class="tDarkRed">svg</span> <span class="tRed">id</span>=<span class="tMagenta">"msvg"</span> width=<span class="tMagenta">"200"</span> height=<span class="tMagenta">"200"</span>><<span class="tDarkRed">/svg</span>></cl-cd>
<cl-cd data-idx="17"> <<span class="tDarkRed">span</span> <span class="tRed">id</span>=<span class="tMagenta">"fsbtn"</span>><<span class="tDarkRed">/span</span>></cl-cd>
<cl-cd data-idx="18"><<span class="tDarkRed">/div</span>></cl-cd>
<cl-cd data-idx="19"> </cl-cd>
<cl-cd data-idx="20"><<span class="tDarkRed">script</span> type=<span class="tMagenta">"module"</span>></cl-cd>
<cl-cd data-idx="21"><span class="tBlue">var</span> sc = <span class="tRed">document</span>.createElement(<span class="tMagenta">'script'</span>);</cl-cd>
<cl-cd data-idx="22">sc.src = <span class="tMagenta">'https://638183.freep.cn/638183/web/js/svgdr.js'</span>;</cl-cd>
<cl-cd data-idx="23"><span class="tRed">document</span>.body.appendChild(sc);</cl-cd>
<cl-cd data-idx="24"> </cl-cd>
<cl-cd data-idx="25">sc.onload = () => {</cl-cd>
<cl-cd data-idx="26"> <span class="tBlue">var</span> dr = _dr(<span class="tMagenta">'#msvg'</span>);</cl-cd>
<cl-cd data-idx="27"> dr.defs(<span class="tMagenta">'defs'</span>);</cl-cd>
<cl-cd data-idx="28"> dr.g(<span class="tMagenta">'g1'</span>).addTo(<span class="tMagenta">'defs'</span>);</cl-cd>
<cl-cd data-idx="29"> dr.ellipse(100,100,20,8,<span class="tMagenta">'none'</span>,<span class="tMagenta">'#a59a82'</span>,1).addTo(<span class="tMagenta">'g1'</span>);</cl-cd>
<cl-cd data-idx="30"> <span class="tBlue">var</span> total = 5;</cl-cd>
<cl-cd data-idx="31"> <span class="tRed">Array</span>(total).fill(<span class="tMagenta">''</span>).forEach( (_, k) => {</cl-cd>
<cl-cd data-idx="32"> <span class="tBlue">var</span> color = `#${<span class="tRed">Math</span>.random().toString(16).substring(2,8)}`;</cl-cd>
<cl-cd data-idx="33"> dr.use(<span class="tMagenta">'#g1'</span>).transform(`rotate(${360/total*k} 100 100) translate(5)`).style(`<span class="tBlue">--color:</span> ${color};`);</cl-cd>
<cl-cd data-idx="34"> });</cl-cd>
<cl-cd data-idx="35"> msvg.onclick = () => {</cl-cd>
<cl-cd data-idx="36"> msvg.style.setProperty(<span class="tMagenta">'--state'</span>, [<span class="tMagenta">'paused'</span>,<span class="tMagenta">'running'</span>][+aud.paused]);</cl-cd>
<cl-cd data-idx="37"> aud.paused ? (aud.play(), vid.play(), vid1.play()) : (aud.pause(), vid.pause(), vid1.pause());</cl-cd>
<cl-cd data-idx="38"> };</cl-cd>
<cl-cd data-idx="39">};</cl-cd>
<cl-cd data-idx="40"> </cl-cd>
<cl-cd data-idx="41"><span class="tBlue">import</span> fscreen from <span class="tMagenta">'https://638183.freep.cn/638183/web/mod/fscreen.js'</span>;</cl-cd>
<cl-cd data-idx="42">fscreen.fs(<span class="tMagenta">'mydiv'</span>, <span class="tMagenta">'fsbtn'</span>);</cl-cd>
<cl-cd data-idx="43">aud.play().<span class="tBlue">catch</span>(_ => dr.svg.style.setProperty(<span class="tMagenta">'--state'</span>, <span class="tMagenta">'paused'</span>));</cl-cd>
<cl-cd data-idx="44"><<span class="tDarkRed">/script</span>></cl-cd>
</div>
|