马黑黑 发表于 2025-9-18 07:55

7 Years

<style>
        @import 'https://638183.freep.cn/638183/web/css/tz01.css';
        #pa { --offsetX: 81px; --bg: #ccc url('https://638183.freep.cn/638183/t24/w6/7years.webp') no-repeat center/cover; }
        #progress { position: absolute; width: 12vw; height: 12vw; right: 30px; top: 30px; transition: .4s; }
        #prog, #track { fill: none; stroke: yellow; stroke-width: 16; stroke-opacity: .5; stroke-linecap: round; stroke-linejoin: round; transition: .15s; cursor: pointer; }
        #prog { stroke-opacity: .8; }
        #g1 { transform-box: fill-box; transform-origin: center; cursor: pointer; fill: transparent; stroke: yellow; stroke-width: 2; animation: rotate 8s linear infinite var(--state); }
        #btnFs { left: 20px; top: 20px; color: gold; border-color: currentColor!important; }
</style>

<div id="pa">
        <audio id="aud" src="https://music.163.com/song/media/outer/url?id=412175643" autoplay loop></audio>
        <video class="pd-vid" src="https://img.tukuppt.com/video_show/1863507/00/31/09/5fab86307e62b.mp4" autoplay loop muted></video>
        <svg id="progress" class="grayscale" xmlns="http://www.w3.org/2000/svg" viewBox="-200 -200 400 400">
                <g id="g1" class="brightness"><title>ALT+X</title></g>
                <g id="g2"><title>调节进度</title></g>
        </svg>
</div>

<script type="module">
        import { FS } from 'https://638183.freep.cn/638183/web/js/pathprog.js';
        import Dr from 'https://638183.freep.cn/638183/web/mod/svgdr.mod.js?v=1.0';

        var dr = Dr.dr(progress);
        dr.polygon('-15 0,-30 -150,30 -140, 15 0').addTo('g1').rotates(7);
        dr.polyline('0 -190,190 -190,160 160').id('track').addTo('g2');
        dr.polyline('0 -190,190 -190,160 160').id('prog').addTo('g2');

        FS(pa, g1);
</script>

马黑黑 发表于 2025-9-18 07:56

<div class="codebox" data-prev="1">
&lt;style&gt;
        @import 'https://638183.freep.cn/638183/web/css/tz01.css';
        #pa { --offsetX: 81px; --bg: #ccc url('https://638183.freep.cn/638183/t24/w6/7years.webp') no-repeat center/cover; }
        #progress { position: absolute; width: 12vw; height: 12vw; right: 30px; top: 30px; transition: .4s; }
        #prog, #track { fill: none; stroke: yellow; stroke-width: 16; stroke-opacity: .5; stroke-linecap: round; stroke-linejoin: round; transition: .15s; cursor: pointer; }
        #prog { stroke-opacity: .8; }
        #g1 { transform-box: fill-box; transform-origin: center; cursor: pointer; fill: transparent; stroke: yellow; stroke-width: 2; animation: rotate 8s linear infinite var(--state); }
        #btnFs { left: 20px; top: 20px; color: gold; border-color: currentColor!important; }
&lt;/style&gt;

&lt;div id="pa"&gt;
        &lt;audio id="aud" src="https://music.163.com/song/media/outer/url?id=412175643" autoplay loop&gt;&lt;/audio&gt;
        &lt;video class="pd-vid" src="https://img.tukuppt.com/video_show/1863507/00/31/09/5fab86307e62b.mp4" autoplay loop muted&gt;&lt;/video&gt;
        &lt;svg id="progress" class="grayscale" xmlns="http://www.w3.org/2000/svg" viewBox="-200 -200 400 400"&gt;
                &lt;g id="g1" class="brightness"&gt;&lt;title&gt;ALT+X&lt;/title&gt;&lt;/g&gt;
                &lt;g id="g2"&gt;&lt;title&gt;调节进度&lt;/title&gt;&lt;/g&gt;
        &lt;/svg&gt;
&lt;/div&gt;

&lt;script type="module"&gt;
        import { FS } from 'https://638183.freep.cn/638183/web/js/pathprog.js';
        import Dr from 'https://638183.freep.cn/638183/web/mod/svgdr.mod.js?v=1.0';

        var dr = Dr.dr(progress);
        dr.polygon('-15 0,-30 -150,30 -140, 15 0').addTo('g1').rotates(7);
        dr.polyline('0 -190,190 -190,160 160').id('track').addTo('g2');
        dr.polyline('0 -190,190 -190,160 160').id('prog').addTo('g2');

        FS(pa, g1);
&lt;/script&gt;
</div>

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

梦江南 发表于 2025-9-18 08:05

黑黑老师早上好!很漂亮的小播,整体的色彩一致。很赞!{:4_187:}

红影 发表于 2025-9-18 08:42

这个g1的克隆只有rotates(7),后面的角度和旋转中心都省略了呢。
看到了viewBox="-200 -200 400 400">,如此中心在0 0,也就是按 360 度平均旋转且旋转点在0 0的就可以省略了吧{:4_187:}

红影 发表于 2025-9-18 08:44

进来就看到这个7是画出来的,画得还挺好的呢。
这个标题怎么叫7年,还配了一对人儿的背景,是指的七年之痒么{:4_173:}

马黑黑 发表于 2025-9-18 12:21

红影 发表于 2025-9-18 08:44
进来就看到这个7是画出来的,画得还挺好的呢。
这个标题怎么叫7年,还配了一对人儿的背景,是指的七年之痒 ...

《七年之痒》是1955年出品的一部电影,梦露主演,探讨婚姻中的诱惑与心里挣扎。歌曲7 years与此无关,这是2015年热门单曲,讲述的是成长经历与对未来的美好憧憬。本帖是翻唱性质的吉他版,非原曲。

马黑黑 发表于 2025-9-18 12:27

红影 发表于 2025-9-18 08:42
这个g1的克隆只有rotates(7),后面的角度和旋转中心都省略了呢。
看到了viewBox="-200 -200 400 400">,如 ...

严格来讲,不是 g1 的克隆。说明里应该讲到克隆对象,克隆的是刚刚绘制的元素,本帖是 polygon,这个多边形绘制好之后添加到 g1 分组作为它的子元素,然后克隆旋转这些多边形,它们同样是 g1 分组的子元素。元素之间的关系必须清晰。

之所以创建 g1 分组,是将 g1 作为容器,里面装载N多个图案、共同组合成小播形状。多个多边形放在 g1 里,然后 g1 就是小播,是它运行CSS关键帧动画而非N多个多边形。

马黑黑 发表于 2025-9-18 12:28

梦江南 发表于 2025-9-18 08:05
黑黑老师早上好!很漂亮的小播,整体的色彩一致。很赞!

{:4_190:}

小辣椒 发表于 2025-9-18 16:39

黑黑的速度太快了,前面的还没有消化,后面立马出来了,神速的{:4_174:}

马黑黑 发表于 2025-9-18 18:16

小辣椒 发表于 2025-9-18 16:39
黑黑的速度太快了,前面的还没有消化,后面立马出来了,神速的

都是同一个模块

花飞飞 发表于 2025-9-18 20:47

这个小播正中间又出现漂亮的图案。看单个绘制的分明是一个四边形,小梯形样纸的。。。
这么旋转7次居然可以交叠成如此美的形状。。。意想不到。。
今天的应该是没闭眼画的。。{:4_173:}
写了个7当进度条,理工男的设计果然与众不同。。。画面浪漫。。这个数字看着很实用。。

花飞飞 发表于 2025-9-18 20:51

越看rotates指令很牛。。。今天这款小播阳光灿烂的
画面粒子扑面而来,背景中两个人七年依然甜如蜂蜜。。。{:4_170:}又蛰又甜的。

花飞飞 发表于 2025-9-18 20:52

width: 12vw; height: 12vw; 这个尺寸从昨天开始就变成视口了,之前都是直接给尺寸的,效果差不多么。。
还是这样写有什么优势

马黑黑 发表于 2025-9-18 20:55

花飞飞 发表于 2025-9-18 20:52
width: 12vw; height: 12vw; 这个尺寸从昨天开始就变成视口了,之前都是直接给尺寸的,效果差不多么。。
...

vw 是浏览器可视宽度,vh是高度。和百分比一样,是相对单位。但是,我们希望宽高一致时,用百分比得不到正方形的宽高尺寸,而 width height 都是用 vw 那么就按浏览器的可视宽度的一定比例,确保得到的是正方形尺寸。

马黑黑 发表于 2025-9-18 20:56

花飞飞 发表于 2025-9-18 20:51
越看rotates指令很牛。。。今天这款小播阳光灿烂的
画面粒子扑面而来,背景中两个人七年依然甜如蜂蜜。。 ...

七年不是七年之痒,误读了

马黑黑 发表于 2025-9-18 20:57

花飞飞 发表于 2025-9-18 20:47
这个小播正中间又出现漂亮的图案。看单个绘制的分明是一个四边形,小梯形样纸的。。。
这么旋转7次居然可 ...

{:4_203:}

花飞飞 发表于 2025-9-18 21:07

马黑黑 发表于 2025-9-18 20:56
七年不是七年之痒,误读了

你看没读成痒的呀。我读的是甜腻甜腻的的。{:4_173:}

红影 发表于 2025-9-18 21:07

马黑黑 发表于 2025-9-18 12:21
《七年之痒》是1955年出品的一部电影,梦露主演,探讨婚姻中的诱惑与心里挣扎。歌曲7 years与此无关,这 ...

哦哦,原来一个是电影一个是音乐,知道了。

花飞飞 发表于 2025-9-18 21:09

马黑黑 发表于 2025-9-18 20:57


先看画面好温馨,看到数字感觉,画面突然一变。。{:4_170:}
像是过节的时候拿了一把葱花当礼物。浪漫 又实用。

红影 发表于 2025-9-18 21:09

马黑黑 发表于 2025-9-18 12:27
严格来讲,不是 g1 的克隆。说明里应该讲到克隆对象,克隆的是刚刚绘制的元素,本帖是 polygon,这个多边 ...

被黑黑这样一说,这些元素关系就十分清晰了,真好{:4_187:}
页: [1] 2 3 4 5 6
查看完整版本: 7 Years