王小赛 - 一生所爱
本帖最后由 马黑黑 于 2024-5-3 10:38 编辑 <br /><br /><style>#papa { margin: 20px 0 20px calc(50% - 593px); width: 1024px; height: 640px; background: url('https://638183.freep.cn/638183/t24/2/u02.jpg') no-repeat center/cover; box-shadow: 3px 3px 6px gray; overflow: hidden; z-index: 1; position: relative; }
#player { position: absolute; width: 200px; left: calc(50% - 100px); top: calc(50% - 100px); cursor: pointer; pointer-events: auto; animation: rot 6s linear infinite var(--state); }
#canv { position: absolute; display: block; mix-blend-mode: screen; pointer-events: none; }
.vid { position: absolute; bottom: 0; width: 100%; height: calc(100% + 100px); object-fit: cover; pointer-events: none; mix-blend-mode: screen; }
@keyframes rot { to { transform: rotate(360deg); } }
</style>
<div id="papa">
<audio id="aud" src="https://music.163.com/song/media/outer/url?id=461855254" autoplay loop></audio>
<video class="vid" src="https://img.tukuppt.com/video_show/2269348/00/14/66/5e5a2fd36a145.mp4" loop muted></video>
<canvas id="canv"></canvas>
<img id="player" src="https://638183.freep.cn/638183/t24/leaf/9l.png" alt="" />
</div>
<script>
var pa = papa;
var sF = document.createElement('script');
sF.src = 'https://638183.freep.cn/638183/web/js/emmiter.js';
sF.charset = 'utf-8';
document.body.appendChild(sF);
player.onclick = () => aud.paused ? aud.play() : aud.pause();
</script>
本帖最后由 马黑黑 于 2024-5-3 10:37 编辑 <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>
<h2>帖子源码</h2>
<div class='mum'>
<cl-cd data-idx="1"><<span class="tDarkRed">style</span>></cl-cd>
<cl-cd data-idx="2">#papa { <span class="tBlue">margin:</span> 20px 0 20px calc(50% - 593px); <span class="tBlue">width:</span> 1024px; <span class="tBlue">height:</span> 640px; <span class="tBlue">background:</span> url(<span class="tMagenta">'https://638183.freep.cn/638183/t24/2/u02.jpg'</span>) no-repeat center/cover; <span class="tBlue">box-shadow:</span> 3px 3px 6px gray; <span class="tBlue">overflow:</span> hidden; <span class="tBlue">z-index:</span> 1; <span class="tBlue">position:</span> relative; }</cl-cd>
<cl-cd data-idx="3">#player { <span class="tBlue">position:</span> absolute; <span class="tBlue">width:</span> 200px; <span class="tBlue">left:</span> calc(50% - 100px); <span class="tBlue">top:</span> calc(50% - 100px); <span class="tBlue">cursor:</span> pointer; <span class="tBlue">pointer-events:</span> auto; <span class="tBlue">animation:</span> rot 6s linear infinite <span class="tBlue">var</span>(--state); }</cl-cd>
<cl-cd data-idx="4"><span class="tGreen">/* 画布样式 */</span></cl-cd>
<cl-cd data-idx="5">#canv { <span class="tBlue">position:</span> absolute; <span class="tBlue">display:</span> block; <span class="tBlue">mix-blend-mode:</span> screen; <span class="tBlue">pointer-events:</span> none; }</cl-cd>
<cl-cd data-idx="6"><span class="tGreen">/* 视频样式 */</span></cl-cd>
<cl-cd data-idx="7">.vid { <span class="tBlue">position:</span> absolute; <span class="tBlue">bottom:</span> 0; <span class="tBlue">width:</span> 100%; <span class="tBlue">height:</span> calc(100% + 100px); <span class="tBlue">object-fit:</span> cover; <span class="tBlue">pointer-events:</span> none; <span class="tBlue">mix-blend-mode:</span> screen; }</cl-cd>
<cl-cd data-idx="8">@keyframes rot { to { <span class="tBlue">transform:</span> rotate(360deg); } }</cl-cd>
<cl-cd data-idx="9"><<span class="tDarkRed">/style</span>></cl-cd>
<cl-cd data-idx="10"> </cl-cd>
<cl-cd data-idx="11"><<span class="tDarkRed">div</span> <span class="tRed">id</span>=<span class="tMagenta">"papa"</span>></cl-cd>
<cl-cd data-idx="12"> <<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>=461855254"</span> autoplay loop><<span class="tDarkRed">/audio</span>></cl-cd>
<cl-cd data-idx="13"> <span class="tGreen"><!-- 支持多个视频 --></span></cl-cd>
<cl-cd data-idx="14"> <<span class="tDarkRed">video</span> class=<span class="tMagenta">"vid"</span> src=<span class="tMagenta">"https://img.tukuppt.com/video_show/2269348/00/14/66/5e5a2fd36a145.mp4"</span> loop muted><<span class="tDarkRed">/video</span>></cl-cd>
<cl-cd data-idx="15"> <span class="tGreen"><!-- 画布id必须是 id="canv" --></span></cl-cd>
<cl-cd data-idx="16"> <<span class="tDarkRed">canvas</span> <span class="tRed">id</span>=<span class="tMagenta">"canv"</span>><<span class="tDarkRed">/canvas</span>></cl-cd>
<cl-cd data-idx="17"> <<span class="tDarkRed">img</span> <span class="tRed">id</span>=<span class="tMagenta">"player"</span> src=<span class="tMagenta">"https://638183.freep.cn/638183/t24/leaf/9l.png"</span> alt=<span class="tMagenta">""</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>></cl-cd>
<cl-cd data-idx="21"> <span class="tBlue">var</span> pa = papa; <span class="tGreen">//指定帖子元素id</span></cl-cd>
<cl-cd data-idx="22"> <span class="tGreen">//加载粒子特效资源</span></cl-cd>
<cl-cd data-idx="23"> <span class="tBlue">var</span> sF = <span class="tRed">document</span>.createElement(<span class="tMagenta">'script'</span>);</cl-cd>
<cl-cd data-idx="24"> sF.src = <span class="tMagenta">'https://638183.freep.cn/638183/web/js/emmiter.js'</span>;</cl-cd>
<cl-cd data-idx="25"> sF.charset = <span class="tMagenta">'utf-8'</span>;</cl-cd>
<cl-cd data-idx="26"> <span class="tRed">document</span>.body.appendChild(sF);</cl-cd>
<cl-cd data-idx="27"> <span class="tGreen">//播放按钮点击事件</span></cl-cd>
<cl-cd data-idx="28"> player.onclick = () => aud.paused ? aud.play() : aud.pause();</cl-cd>
<cl-cd data-idx="29"><<span class="tDarkRed">/script</span>></cl-cd>
</div>
今天有新贴,我来瞧瞧说明。。{:4_173:} 新的粒子,每个粒子带渐变效果,
旋转的流星雨一样,效果独特。。
贴子图片背景和视频效果都呈现出柔美的梦幻效果。。{:4_199:}
封好的粒子效果。。
最近的贴子都可以多个视频支持。。
这些对小白来说都太友好了。{:4_173:} 梦回大话西游~~ 好听 好看 学习了{:4_190:} 这样一生所爱,横跨宇宙呢,真够伟大的{:4_187:} 这样的粒子效果好奇妙,仿佛在呵护着播放器按钮的转动似的。
还有这样奇妙的运动轨迹的啊{:4_199:} 这视频也选得很奇妙,开始以为烟雾里散出的星星点点是粒子带来的,原来是视频里的{:4_173:} 南无月 发表于 2024-5-3 11:26
今天有新贴,我来瞧瞧说明。。
说明很简单 红影 发表于 2024-5-3 13:11
这视频也选得很奇妙,开始以为烟雾里散出的星星点点是粒子带来的,原来是视频里的
是的 红影 发表于 2024-5-3 13:07
这样的粒子效果好奇妙,仿佛在呵护着播放器按钮的转动似的。
还有这样奇妙的运动轨迹的啊
想有就有 红影 发表于 2024-5-3 13:05
这样一生所爱,横跨宇宙呢,真够伟大的
还行 南无月 发表于 2024-5-3 11:37
新的粒子,每个粒子带渐变效果,
旋转的流星雨一样,效果独特。。
贴子图片背景和视频效果都呈现出柔美的 ...
粒子的拖尾效果通过填充带透明的黑色而成,很快背景就变黑了,所以用 mix-blend-mode 处理一下。canvas中的拖尾还有全局透明的做法,有空我查查资料看看怎么弄才更好 南无月 发表于 2024-5-3 11:43
封好的粒子效果。。
最近的贴子都可以多个视频支持。。
这些对小白来说都太友好了。
管控视频的暂停播放简单的 朵拉 发表于 2024-5-3 11:50
好听 好看 学习了
{:4_191:} 朵拉 发表于 2024-5-3 11:49
梦回大话西游~~
{:4_189:} 马黑黑 发表于 2024-5-3 16:43
管控视频的暂停播放简单的
会者不难,都是简单。。
我传图试贴里第一页的啥都不动的,辛苦老师给瞧一眼好不。。{:4_170:} 设计得真妙,大有梦幻的感觉。