马黑黑 发表于 2024-10-1 08:31

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>

马黑黑 发表于 2024-10-1 08:32

<p>帖子代码</p>
<div class="hE"><pre>
&lt;style&gt;
#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); }
}
&lt;/style&gt;

&lt;div id="tz"&gt;
        &lt;audio id="aud" src="https://music.163.com/song/media/outer/url?id=29751208" autoplay loop&gt;&lt;/audio&gt;
        &lt;video id="vid" src="https://img.tukuppt.com/video_show/2269348/00/14/66/5e5a31a0b980d.mp4" autoplay loop muted&gt;&lt;/video&gt;
        &lt;svg id="player" width="200" height="200" viewBox="0 0 200 200"&gt;
                &lt;title id="tt"&gt;播放/暂停&lt;/title&gt;
                &lt;defs&gt;
                        &lt;g id="p1" fill="none" stroke="var(--bg)" stroke-width="4" stroke-linecap="round" stroke-dasharray="4 6"&gt;
                                &lt;path id="p1" d="M10 100 Q50 270,100 100 T 190 100"&gt;
                                        &lt;animate attributeName="stroke-dashoffset" from="80" to="0" dur="2s" repeatCount="indefinite" /&gt;
                                &lt;/path&gt;
                        &lt;/g&gt;
                &lt;/defs&gt;
                &lt;use href="#p1" transform="rotate(0 100 100)"&gt;&lt;/use&gt;
                &lt;use href="#p1" transform="rotate(30 100 100)"&gt;&lt;/use&gt;
                &lt;use href="#p1" transform="rotate(60 100 100)"&gt;&lt;/use&gt;
                &lt;use href="#p1" transform="rotate(90 100 100)"&gt;&lt;/use&gt;
                &lt;use href="#p1" transform="rotate(120 100 100)"&gt;&lt;/use&gt;
                &lt;use href="#p1" transform="rotate(150 100 100)"&gt;&lt;/use&gt;
        &lt;/svg&gt;
&lt;/div&gt;

&lt;script&gt;
mState = () =&gt; {
        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 = () =&gt; mState();
player.onclick = () =&gt; aud.paused ? aud.play() : aud.pause();
&lt;/script&gt;
</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>

梦江南 发表于 2024-10-1 09:08

问好老师,这也太漂亮了!{:4_187:}

梦江南 发表于 2024-10-1 09:09

国庆节也不休息,真是辛苦了!{:4_204:}

梦江南 发表于 2024-10-1 09:22

本帖最后由 梦江南 于 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>

红影 发表于 2024-10-1 10:39

哇,这个不但使用了那个漂亮的线圈小播,还分奇偶设置了不同的颜色,漂亮{:4_199:}

红影 发表于 2024-10-1 10:41

使用的背景和视频也好漂亮,特别突出小播的美,组合起来那么协调。
黑黑对总体效果的把控太厉害了{:4_199:}

红影 发表于 2024-10-1 10:43

在这个帖子里再复习一遍对svg动态控制的pauseAnimations()和unpauseAnimations(),上次具体运用时居然忘了这个功能,真不应该{:4_173:}

红影 发表于 2024-10-1 10:44

如此缥缈浪漫的效果,又有着奇妙的对称美,这两者都能有机结合,实在是很出乎意料。太赞了{:4_199:}

马黑黑 发表于 2024-10-1 11:29

梦江南 发表于 2024-10-1 09:08
问好老师,这也太漂亮了!

{:4_190:}

马黑黑 发表于 2024-10-1 11:30

红影 发表于 2024-10-1 10:39
哇,这个不但使用了那个漂亮的线圈小播,还分奇偶设置了不同的颜色,漂亮

{:4_180:}

马黑黑 发表于 2024-10-1 11:30

红影 发表于 2024-10-1 10:41
使用的背景和视频也好漂亮,特别突出小播的美,组合起来那么协调。
黑黑对总体效果的把控太厉害了{:4_199: ...

嗯,学过设计学,主要是为了砌猪栏

马黑黑 发表于 2024-10-1 11:32

红影 发表于 2024-10-1 10:43
在这个帖子里再复习一遍对svg动态控制的pauseAnimations()和unpauseAnimations(),上次具体运用时居然忘了 ...

最近不怎么吃鱼的缘故{:4_196:}

马黑黑 发表于 2024-10-1 11:32

红影 发表于 2024-10-1 10:44
如此缥缈浪漫的效果,又有着奇妙的对称美,这两者都能有机结合,实在是很出乎意料。太赞了

谢赞

红影 发表于 2024-10-1 13:58

马黑黑 发表于 2024-10-1 11:30


这个制作太美了{:4_187:}

红影 发表于 2024-10-1 13:59

马黑黑 发表于 2024-10-1 11:30
嗯,学过设计学,主要是为了砌猪栏

哈哈,又开始猪猪的话题了啊{:4_173:}

红影 发表于 2024-10-1 13:59

马黑黑 发表于 2024-10-1 11:32
最近不怎么吃鱼的缘故

这样折腾一下,下次不会忘记了{:4_205:}

红影 发表于 2024-10-1 14:00

马黑黑 发表于 2024-10-1 11:32
谢赞

不客气啊,再来欣赏黑黑的奇思妙想{:4_187:}

马黑黑 发表于 2024-10-1 14:37

红影 发表于 2024-10-1 14:00
不客气啊,再来欣赏黑黑的奇思妙想

谢欣

马黑黑 发表于 2024-10-1 14:38

红影 发表于 2024-10-1 13:59
这样折腾一下,下次不会忘记了

不吃鱼还是会忘记的
页: [1] 2 3
查看完整版本: Entropy