屋后
<css-doodle grid="1x2" id="mplayer">:doodle {
@size: 1024px 576px;
background: lightgreen url('https://638183.freep.cn/638183/t23/1/forest.jpg') no-repeat center/cover;
position: relative;
margin: -80px 0 0 calc(50% - 593px);
box-shadow: 0 0 8px 0 #000;
pointer-evetns: none;
z-index: 2;
--state: paused;
}
@size: 200px;
@place: 50% 16%;
background: radial-gradient(red,orange,lightgreen);
clip-path: @shape(
points: 580;
r: cos(100t);
);
@at(1,2) { background: radial-gradient(darkred,green,snow); }
cursor: pointer;
pointer-events: auto;
animation: rot @pn(6s, 8s) infinite linear var(--state);
@keyframes rot { to { transform: rotate(360deg); } }
</css-doodle>
<audio id="aud" src="https://music.163.com/song/media/outer/url?id=557805233" autoplay loop></audio>
<script>
(function() {
let script = document.createElement('script');
script.src = 'https://unpkg.com/css-doodle@0.34.9/css-doodle.min.js';
document.head.appendChild(script);
let mState = () => mplayer.style.setProperty('--state', aud.paused ? 'paused' : 'running');
aud.addEventListener('play', mState, false);
aud.addEventListener('pause', mState, false);
mplayer.onclick = () => aud.paused ? aud.play() : aud.pause();
})();
</script> 帖子代码
<css-doodle grid="1x2" id="mplayer">
:doodle {
@size: 1024px 576px;
background: lightgreen url('https://638183.freep.cn/638183/t23/1/forest.jpg') no-repeat center/cover;
position: relative;
margin: -80px 0 0 calc(50% - 593px);
box-shadow: 0 0 8px 0 #000;
pointer-evetns: none;
z-index: 2;
--state: paused;
}
@size: 200px;
@place: 50% 16%;
background: radial-gradient(red,orange,lightgreen);
clip-path: @shape(
points: 580;
r: cos(100t);
);
@at(1,2) { background: radial-gradient(darkred,green,snow); }
cursor: pointer;
pointer-events: auto;
animation: rot @pn(6s, 8s) infinite linear var(--state);
@keyframes rot { to { transform: rotate(360deg); } }
</css-doodle>
<audio id="aud" src="https://music.163.com/song/media/outer/url?id=557805233" autoplay loop></audio>
<script>
(function() {
let script = document.createElement('script');
script.src = 'https://unpkg.com/css-doodle@0.34.9/css-doodle.min.js';
document.head.appendChild(script);
let mState = () => mplayer.style.setProperty('--state', aud.paused ? 'paused' : 'running');
aud.addEventListener('play', mState, false);
aud.addEventListener('pause', mState, false);
mplayer.onclick = () => aud.paused ? aud.play() : aud.pause();
})();
</script>
帖子实现方法:
用 css-doodle 实现,1列2行的网格,单元格尺寸 200*200px,径向渐变背景(二者有所区别),然后通过 CSS 的 clip-path 属性配套 css-doodle 的 @shape() 函数在每个单元格的上面裁剪路径,得出两个图案。两个图案重叠,关键帧动画周期时长一个6s一个8s,就酱简简单单。
屋后的美,其实无需修饰,播放器的设计配得上它就行。 瞧瞧屋后藏了谁 这个颜色变化更多了 绿叶清舟 发表于 2023-5-2 09:43
瞧瞧屋后藏了谁
小心有黑熊 绿叶清舟 发表于 2023-5-2 09:44
这个颜色变化更多了
每一个单元格,有三种颜色参与渐变,仅此而已 欣赏老师佳作!{:4_187:} 鸟鸣为整个画面增添了活力。 梦油 发表于 2023-5-2 11:04
鸟鸣为整个画面增添了活力。
鸟儿是大自然中不可或缺的元素 焱鑫磊 发表于 2023-5-2 10:36
欣赏老师佳作!
上午好 醉美水芙蓉 发表于 2023-5-2 11:46
闪闪发光好美!
中午好 马黑黑 发表于 2023-5-2 11:10
鸟儿是大自然中不可或缺的元素
设计合理、制作精良。 花瓣太阳,谢谢老师的分享,欣赏问好!{:4_185:} 马黑黑 发表于 2023-5-2 10:02
小心有黑熊
咋这么重口味的 马黑黑 发表于 2023-5-2 10:03
每一个单元格,有三种颜色参与渐变,仅此而已
这个图形咋控制呢 这个能弄出这么漂亮的图案来,太赞了{:4_199:} 红影 发表于 2023-5-2 20:18
这个能弄出这么漂亮的图案来,太赞了
晚上嚎,节日嚎 梦油 发表于 2023-5-2 13:02
设计合理、制作精良。
感谢支持
页:
[1]
2