马黑黑 发表于 2025-8-25 13:32

Cyberworld

本帖最后由 马黑黑 于 2025-8-25 18:00 编辑 <br /><br /><style>
        @import 'https://638183.freep.cn/638183/web/css/tz01.css';
        #pa { --offsetX: 81px; --bg: url('https://638183.freep.cn/638183/t24/w5/cyber.webp') no-repeat center/cover; --ma-size: 20%; }
        #ma { left: 30px; bottom: 30px; }
        #lz { position: absolute; width: 12vw; height: 12vw; top: 0; }
        #btnFs { right: 20px; bottom: 20px; color: yellow; border-color: currentColor!important; }
        .cc { animation: opacity 0.5s var(--delay) infinite alternate var(--state); }
        @keyframes opacity { to { opacity: 0; } }
</style>

<div id="pa">
        <audio id="audio" src="https://music.163.com/song/media/outer/url?id=4441146" autoplay loop></audio>
        <video class="pd-vid" src="https://img.tukuppt.com/video_show/15653652/00/29/96/5fa09f4e88257.mp4" autoplay loop muted></video>
        <div id="ma" class="brightness"><svg id="msvg" width="100%" height="100%" viewbox="-200 -200 400 400"></svg></div>
        <svg id="lz" width="150" height="150" viewbox="-200 -200 400 400"></svg>
</div>

<script type="module">
        import { FS } from 'https://638183.freep.cn/638183/web/js/fullscreen.js';
        import Dr from 'https://638183.freep.cn/638183/web/mod/svgdr.js';
        var dr = Dr.dr(msvg);
        var tt = 6, d = 'M-20 0,0 -70,20 0,20 -190,0 -100,-20 -190 Z';
        Array.from({length: tt}).forEach((_,k) => {
                dr.path(d, 'olive', 'orange', 2).transform(`rotate(${360/tt*k})`);
        });
        dr = Dr.dr(lz);
        Array.from({length: 50}).forEach((_,k) => {
                var R = Math.random() * 200 - 10;
                var cx = R * Math.cos(Math.PI / 180 * 360 / 50 * k),
                        cy = R * Math.sin(Math.PI / 180 * 360 / 50 * k),
                        r = Math.round(Math.random() * 4) + 4;
                dr.circle(cx,cy,r,'#fff').set('class','cc').style(`--delay: ${Math.random()}s`);
        });
        FS(pa, ma);
</script>

马黑黑 发表于 2025-8-25 13:33

本帖最后由 马黑黑 于 2025-8-25 17:59 编辑 <br /><br /><div class="codebox">
&lt;style&gt;
        @import 'https://638183.freep.cn/638183/web/css/tz01.css';
        #pa { --offsetX: 81px; --bg: url('https://638183.freep.cn/638183/t24/w5/cyber.webp') no-repeat center/cover; --ma-size: 20%; }
        #ma { left: 30px; bottom: 30px; }
        #lz { position: absolute; width: 12vw; height: 12vw; top: 0; }
        #btnFs { right: 20px; bottom: 20px; color: yellow; border-color: currentColor!important; }
        .cc { animation: opacity 0.5s var(--delay) infinite alternate var(--state); }
        @keyframes opacity { to { opacity: 0; } }
&lt;/style&gt;

&lt;div id="pa"&gt;
        &lt;audio id="audio" src="https://music.163.com/song/media/outer/url?id=4441146" autoplay loop&gt;&lt;/audio&gt;
        &lt;video class="pd-vid" src="https://img.tukuppt.com/video_show/15653652/00/29/96/5fa09f4e88257.mp4" autoplay loop muted&gt;&lt;/video&gt;
        &lt;div id="ma" class="brightness"&gt;&lt;svg id="msvg" width="100%" height="100%" viewbox="-200 -200 400 400"&gt;&lt;/svg&gt;&lt;/div&gt;
        &lt;svg id="lz" width="150" height="150" viewbox="-200 -200 400 400"&gt;&lt;/svg&gt;
&lt;/div&gt;

&lt;script type="module"&gt;
        import { FS } from 'https://638183.freep.cn/638183/web/js/fullscreen.js';
        import Dr from 'https://638183.freep.cn/638183/web/mod/svgdr.js';
        var dr = Dr.dr(msvg);
        var tt = 6, d = 'M-20 0,0 -70,20 0,20 -190,0 -100,-20 -190 Z';
        Array.from({length: tt}).forEach((_,k) =&gt; {
                dr.path(d, 'olive', 'orange', 2).transform(`rotate(${360/tt*k})`);
        });
        dr = Dr.dr(lz);
        Array.from({length: 50}).forEach((_,k) =&gt; {
                var R = Math.random() * 200 - 10;
                var cx = R * Math.cos(Math.PI / 180 * 360 / 50 * k),
                        cy = R * Math.sin(Math.PI / 180 * 360 / 50 * k),
                        r = Math.round(Math.random() * 4) + 4;
                dr.circle(cx,cy,r,'#fff').set('class','cc').style(`--delay: ${Math.random()}s`);
        });
        FS(pa, ma);
&lt;/script&gt;
</div>

<script type="module">
import linenumber from 'https://638183.freep.cn/638183/web/js/linenumber.js';
linenumber();
</script>

马黑黑 发表于 2025-8-25 13:38

帖子使用了两个 svg 标签:

(一)左下角小播,它作为 ma 的子元素出现;
(二)正上方白色粒子,直接作为 pa 的子标签出现,里面闪烁的白色粒子与帖子整体背景融为一体。白色粒子50个,在指定半径的圆形范围内随机布局。

两个 svg 同用一个 dr 画笔,26行代码是画笔交替。

马黑黑 发表于 2025-8-25 13:45

小播构图:

      以极简的路径,即,‘M-20 0,0 -70,20 0,20 -190,0 -100,-20 -190 Z’,作为单个 path 标签形状,然后每一个 path 标签一次旋转一定角度,多个路径最终构成炫酷的图案。

      svg 的 transform 属性中的 rotate 转换应有三个参数:

      transform=‘rotate(旋转角度 圆心X坐标 圆心Y坐标)';

      由于前面的svg标签设置了 viewbox 属性,svg将在此视口作画,该属性已经将坐标搬到了矩形中央,所以 dr 画笔在设置旋转参数中可以省略后面圆心坐标值,缺省值默认为 0 0.

梦江南 发表于 2025-8-25 13:51

小播和白色粒子都是用代码画出来的。太厉害了!

梦江南 发表于 2025-8-25 13:52

黑黑老师下午好。{:4_190:}

花飞飞 发表于 2025-8-25 15:41

先是被音乐吸引到了,节奏感好强。。听得人一下子不瞌睡了{:4_173:}

花飞飞 发表于 2025-8-25 15:48

小播是画出来的,这个知道,形状特别,中间还有镂空。。
看说明才发现,还画了一些白色粒子,在人物头顶上方,原地闪烁,并没有移动。
这位置,颜色,大小和闪烁节奏跟背景和视频完美融合,完 全没看出来。。。{:4_173:}

花飞飞 发表于 2025-8-25 15:51

马黑黑 发表于 2025-8-25 13:45
小播构图:

      以极简的路径,即,‘M-20 0,0 -70,20 0,20 -190,0 -100,-20 -190 Z’,作为单个 pa ...

很妙的设计,背景有点抽象,这个小播的形象有点锐利,刚好与背景相符。。
原来是一个四角尖的工字形,重复6次形成的图案。。
正中间交叠之后是个圆形。。{:4_199:}

杨帆 发表于 2025-8-25 17:01

两个 svg 漂亮!动感科技感十足,谢谢马老师精彩分享{:4_191:}

马黑黑 发表于 2025-8-25 18:55

杨帆 发表于 2025-8-25 17:01
两个 svg 漂亮!动感科技感十足,谢谢马老师精彩分享

{:4_190:}

马黑黑 发表于 2025-8-25 18:56

梦江南 发表于 2025-8-25 13:51
小播和白色粒子都是用代码画出来的。太厉害了!

{:4_191:}

马黑黑 发表于 2025-8-25 18:56

梦江南 发表于 2025-8-25 13:52
黑黑老师下午好。

晚上好

马黑黑 发表于 2025-8-25 18:56

花飞飞 发表于 2025-8-25 15:41
先是被音乐吸引到了,节奏感好强。。听得人一下子不瞌睡了

比咖啡还提神{:4_170:}

马黑黑 发表于 2025-8-25 18:57

花飞飞 发表于 2025-8-25 15:48
小播是画出来的,这个知道,形状特别,中间还有镂空。。
看说明才发现,还画了一些白色粒子,在人物头顶上 ...

{:4_190:}

马黑黑 发表于 2025-8-25 18:57

花飞飞 发表于 2025-8-25 15:51
很妙的设计,背景有点抽象,这个小播的形象有点锐利,刚好与背景相符。。
原来是一个四角尖的工字形,重 ...

看出来了

花飞飞 发表于 2025-8-25 19:05

马黑黑 发表于 2025-8-25 18:56
比咖啡还提神

提神曲就是神曲。。。当之无愧{:4_173:}

花飞飞 发表于 2025-8-25 19:07

马黑黑 发表于 2025-8-25 18:57


哎这个粒子藏得有点深啊。。哈哈{:4_173:}

花飞飞 发表于 2025-8-25 19:08

马黑黑 发表于 2025-8-25 18:57
看出来了

一看六个分身,切成六块就是一块的形状了。。反过来想的{:4_170:}

马黑黑 发表于 2025-8-25 19:54

花飞飞 发表于 2025-8-25 19:08
一看六个分身,切成六块就是一块的形状了。。反过来想的

思维还挺活跃灵动
页: [1] 2 3 4 5 6 7
查看完整版本: Cyberworld