Entropy
<style>#tz {
margin: 20px 0 30px calc(50% - 721px);
width: 1280px;
height: 600px;
background: url('https://638183.freep.cn/638183/t24/webp2/entropy.webp') no-repeat center/cover;
box-shadow: 3px 3px 6px rgba(0,0,0,.6);
overflow: hidden;
z-index: 1;
position: relative;
}
#vid {
position: absolute;
width: 100%;
height: calc(100% + 60px);
top: -60px;
object-fit: cover;
mix-blend-mode: screen;
pointer-events: none;
}
#player {
position: absolute;
left: calc(50% - 100px);
top: calc(50% - 85px);
cursor: pointer;
animation: rot 10s linear infinite var(--state);
}
use:nth-child(odd) { --bg: snow; }
use:nth-child(even) { --bg: palevioletred; }
@keyframes rot {
to { transform: rotate(360deg); }
}
</style>
<div id="tz">
<audio id="aud" src="https://music.163.com/song/media/outer/url?id=29751208" autoplay loop></audio>
<video id="vid" src="https://img.tukuppt.com/video_show/2269348/00/14/66/5e5a31a0b980d.mp4" autoplay loop muted></video>
<svg id="player" width="200" height="200" viewBox="0 0 200 200">
<title id="tt">播放/暂停</title>
<defs>
<g id="p1" fill="none" stroke="var(--bg)" stroke-width="4" stroke-linecap="round" stroke-dasharray="4 6">
<path id="p1" d="M10 100 Q50 270,100 100 T 190 100">
<animate attributeName="stroke-dashoffset" from="80" to="0" dur="2s" repeatCount="indefinite" />
</path>
</g>
</defs>
<use href="#p1" transform="rotate(0 100 100)"></use>
<use href="#p1" transform="rotate(30 100 100)"></use>
<use href="#p1" transform="rotate(60 100 100)"></use>
<use href="#p1" transform="rotate(90 100 100)"></use>
<use href="#p1" transform="rotate(120 100 100)"></use>
<use href="#p1" transform="rotate(150 100 100)"></use>
</svg>
</div>
<script>
mState = () => {
tz.style.setProperty('--state', aud.paused ? 'paused' : 'running');
aud.paused ? (player.pauseAnimations(), vid.pause()) : (player.unpauseAnimations(), vid.play());
tt.textContent = aud.paused ? '点击播放' : '点击暂停';
};
aud.onplaying = aud.onpause = () => mState();
player.onclick = () => aud.paused ? aud.play() : aud.pause();
</script>
<p>帖子代码</p>
<div class="hE"><pre>
<style>
#tz {
margin: 20px 0 30px calc(50% - 730px);
width: 1280px;
height: 600px;
background: url('https://638183.freep.cn/638183/t24/webp2/entropy.webp') no-repeat center/cover;
box-shadow: 3px 3px 6px rgba(0,0,0,.6);
overflow: hidden;
z-index: 1;
position: relative;
}
#vid {
position: absolute;
width: 100%;
height: calc(100% + 60px);
top: -60px;
object-fit: cover;
mix-blend-mode: screen;
pointer-events: none;
}
#player {
position: absolute;
left: calc(50% - 100px);
top: calc(50% - 85px);
cursor: pointer;
animation: rot 10s linear infinite var(--state);
}
use:nth-child(odd) { --bg: snow; }
use:nth-child(even) { --bg: palevioletred; }
@keyframes rot {
to { transform: rotate(360deg); }
}
</style>
<div id="tz">
<audio id="aud" src="https://music.163.com/song/media/outer/url?id=29751208" autoplay loop></audio>
<video id="vid" src="https://img.tukuppt.com/video_show/2269348/00/14/66/5e5a31a0b980d.mp4" autoplay loop muted></video>
<svg id="player" width="200" height="200" viewBox="0 0 200 200">
<title id="tt">播放/暂停</title>
<defs>
<g id="p1" fill="none" stroke="var(--bg)" stroke-width="4" stroke-linecap="round" stroke-dasharray="4 6">
<path id="p1" d="M10 100 Q50 270,100 100 T 190 100">
<animate attributeName="stroke-dashoffset" from="80" to="0" dur="2s" repeatCount="indefinite" />
</path>
</g>
</defs>
<use href="#p1" transform="rotate(0 100 100)"></use>
<use href="#p1" transform="rotate(30 100 100)"></use>
<use href="#p1" transform="rotate(60 100 100)"></use>
<use href="#p1" transform="rotate(90 100 100)"></use>
<use href="#p1" transform="rotate(120 100 100)"></use>
<use href="#p1" transform="rotate(150 100 100)"></use>
</svg>
</div>
<script>
mState = () => {
tz.style.setProperty('--state', aud.paused ? 'paused' : 'running');
aud.paused ? (player.pauseAnimations(), vid.pause()) : (player.unpauseAnimations(), vid.play());
tt.textContent = aud.paused ? '点击播放' : '点击暂停';
};
aud.onplaying = aud.onpause = () => mState();
player.onclick = () => aud.paused ? aud.play() : aud.pause();
</script>
</pre></div>
<script>
var sc = document.createElement('script');
sc.chartset = 'utf-8';
sc.src = 'https://638183.freep.cn/638183/web/helight/helight.js';
document.body.appendChild(sc);
</script> 问好老师,这也太漂亮了!{:4_187:} 国庆节也不休息,真是辛苦了!{:4_204:} 本帖最后由 梦江南 于 2024-10-1 10:42 编辑 <br /><br /><svg width="650" height="120" viewBox="-150 -30 250 60">
<text x="0" y="18" fill="Red" stroke="PeachPuff" stroke-width="2" stroke-dasharray="60 10" font-size="30" font-weight="bold" text-anchor="middle">
祝老师国庆节快乐
<animate attributeName="stroke-dashoffset" from="-70" to="0" dur="2s" begin="0s" repeatCount="indefinite"/>
</text>
</svg> 哇,这个不但使用了那个漂亮的线圈小播,还分奇偶设置了不同的颜色,漂亮{:4_199:} 使用的背景和视频也好漂亮,特别突出小播的美,组合起来那么协调。
黑黑对总体效果的把控太厉害了{:4_199:} 在这个帖子里再复习一遍对svg动态控制的pauseAnimations()和unpauseAnimations(),上次具体运用时居然忘了这个功能,真不应该{:4_173:} 如此缥缈浪漫的效果,又有着奇妙的对称美,这两者都能有机结合,实在是很出乎意料。太赞了{:4_199:} 梦江南 发表于 2024-10-1 09:08
问好老师,这也太漂亮了!
{:4_190:} 红影 发表于 2024-10-1 10:39
哇,这个不但使用了那个漂亮的线圈小播,还分奇偶设置了不同的颜色,漂亮
{:4_180:} 红影 发表于 2024-10-1 10:41
使用的背景和视频也好漂亮,特别突出小播的美,组合起来那么协调。
黑黑对总体效果的把控太厉害了{:4_199: ...
嗯,学过设计学,主要是为了砌猪栏 红影 发表于 2024-10-1 10:43
在这个帖子里再复习一遍对svg动态控制的pauseAnimations()和unpauseAnimations(),上次具体运用时居然忘了 ...
最近不怎么吃鱼的缘故{:4_196:} 红影 发表于 2024-10-1 10:44
如此缥缈浪漫的效果,又有着奇妙的对称美,这两者都能有机结合,实在是很出乎意料。太赞了
谢赞 马黑黑 发表于 2024-10-1 11:30
这个制作太美了{:4_187:} 马黑黑 发表于 2024-10-1 11:30
嗯,学过设计学,主要是为了砌猪栏
哈哈,又开始猪猪的话题了啊{:4_173:} 马黑黑 发表于 2024-10-1 11:32
最近不怎么吃鱼的缘故
这样折腾一下,下次不会忘记了{:4_205:} 马黑黑 发表于 2024-10-1 11:32
谢赞
不客气啊,再来欣赏黑黑的奇思妙想{:4_187:} 红影 发表于 2024-10-1 14:00
不客气啊,再来欣赏黑黑的奇思妙想
谢欣 红影 发表于 2024-10-1 13:59
这样折腾一下,下次不会忘记了
不吃鱼还是会忘记的