纯CSS 3d旋转的小播
<style>.wrapper {
margin: 30px auto;
width: 740px;
height: 460px;
border: 1px solid gray;
display: grid;
place-items: center;
perspective: 1000px;
position: relative;
}
.sdiv {
position: absolute;
width: 200px;
height: 200px;
background: url('https://638183.freep.cn/638183/small/ytji_133877216020393750.png') no-repeat center/cover;
filter: drop-shadow(6px 6px 20px gray);
cursor: pointer;
transform: rotate3d(0, 0.3, 0, 0);
animation: rot3d 4s linear infinite var(--state);
--state: running;
}
.sdiv:hover {
filter: drop-shadow(6px 6px 40px black) hue-rotate(130deg);
--state: paused;
}
@keyframes rot3d { to { transform: rotate3d(0, 0.3, 1, 360deg); } }
</style>
<div class="wrapper">
<div class="sdiv"></div>
</div> 代码:
<style>
.wrapper {
margin: 30px auto;
width: 740px;
height: 460px;
border: 1px solid gray;
display: grid;
place-items: center;
perspective: 1000px;
position: relative;
}
.sdiv {
position: absolute;
width: 200px;
height: 200px;
background: url('https://638183.freep.cn/638183/small/ytji_133877216020393750.png') no-repeat center/cover;
filter: drop-shadow(6px 6px 20px gray);
cursor: pointer;
transform: rotate3d(0, 0.3, 0, 0);
animation: rot3d 4s linear infinite var(--state);
--state: running;
}
.sdiv:hover {
filter: drop-shadow(6px 6px 40px black) hue-rotate(130deg);
--state: paused;
}
@keyframes rot3d { to { transform: rotate3d(0, 0.3, 1, 360deg); } }
</style>
<div class="wrapper">
<div class="sdiv"></div>
</div>
CSS完成小花的3D运动,角度变化形成立体效果。。
这个感觉好明显,鼠标不能控制大小了。也不能扯着它底朝天了。。{:4_173:}就是跟JS的区别么 transform: rotate3d(0, 0.3, 0, 0);
transform: rotate(var(--deg)
两者转动设置的差别{:4_173:}
3D转动头一回看到rot3d
漂亮,谢谢老师精彩分享{:4_191:} 这个开始就设定了景深,然后用纯css实现了三维旋转呢{:4_187:} 红影 发表于 2025-7-5 21:55
这个开始就设定了景深,然后用纯css实现了三维旋转呢
是的 花飞飞 发表于 2025-7-5 21:19
CSS完成小花的3D运动,角度变化形成立体效果。。
这个感觉好明显,鼠标不能控制大小了。也不能扯着它底朝 ...
但是CSS是最节流的 旋转角度从0撞到360可以理解,z轴从0变到1是起什么作用的? 红影 发表于 2025-7-5 21:58
旋转角度从0撞到360可以理解,z轴从0变到1是起什么作用的?
这是对应xyz轴的向量数据,每一个一般从0到1,你可以尝试一下静态的,一次将它们设置为不同的数,一个一个来,其余的都是0 杨帆 发表于 2025-7-5 21:36
漂亮,谢谢老师精彩分享
{:4_190:} 谢谢黑黑老师精彩分享。早上好!{:4_190:} 梦江南 发表于 2025-7-6 07:32
谢谢黑黑老师精彩分享。早上好!
{:4_191:} 马黑黑 发表于 2025-7-5 21:56
但是CSS是最节流的
JS在节流方面不如CSS?感觉JS各方面都很强悍的呀。。 马黑黑 发表于 2025-7-5 21:56
是的
三维的就是好看,这个制作太棒了{:4_187:} 马黑黑 发表于 2025-7-5 22:00
这是对应xyz轴的向量数据,每一个一般从0到1,你可以尝试一下静态的,一次将它们设置为不同的数,一个一 ...
嗯嗯,黑黑说得对,需要一个向量一个向量地测试,才能知道实际效果。 红影 发表于 2025-7-6 12:27
三维的就是好看,这个制作太棒了
三维好看是因为三维的才是符合自然的本质 红影 发表于 2025-7-6 12:29
嗯嗯,黑黑说得对,需要一个向量一个向量地测试,才能知道实际效果。
不过,一般的建议是,rotate36(x, y, z, a) 用于一次性定姿势的时候,如果设计一个3d旋转动画,还是使用 rotateX、rotateY、rotateZ 作为 transform 的组合属性值来实现较好。 花飞飞 发表于 2025-7-6 08:38
JS在节流方面不如CSS?感觉JS各方面都很强悍的呀。。
CSS可以认为是不怎么消耗资源的,因为,浏览器直接支持渲染CSS设置的东东,不用运算;JS所有的代码在执行的时候都通过一个引擎去编译,然后在通过浏览器对CSS、HTML的预处理重新渲染页面,即消耗计算机算力,又额外花时间去处理。 马黑黑 发表于 2025-7-6 12:37
三维好看是因为三维的才是符合自然的本质
是的,我们的真实世界本来就是三维的。