提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
概述
在长时间的学习中感觉到了疲惫,想给自己带来点乐趣,今天查看css3的文档时无意间发现了这个属性,写个小domo让大家开心一下,废话不多说直接上代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>彩色盒子旋转</title>
<style>
*{
margin: 0;
padding: 0;
}
.box{
width: 500px;
height: 500px;
margin: 200px auto;
border: 2px solid gray;
/* 重要的是这个属性的添加 */
transform-style:preserve-3d ;
transform: rotateX(20deg) rotateY(20deg);
position: relative;
animation: donghua 2s linear infinite;
}
.box>div{
width: 200px;
height: 200px;
line-height: 200px;
text-align: center;
position: absolute;
top: 50%;
margin-top: -100px;
left: 50%;
margin-left: -100px;
color: #fff;
font-size: 25px;
}
.box1{
background-color: red;
transform: translateX(100px) rotateY(90deg);
}
.box2{
background-color: orange;
transform: translateY(100px) rotateX(90deg);
}
.box3{
background-color: yellow;
transform: translateZ(100px);
}
.box4{
background-color: green;
transform: translateZ(-100px);
}
.box5{
background-color: aqua;
transform: translateY(-100px) rotateX(-90deg);
}
.box6{
background-color: blue;
transform: translateX(-100px) rotateY(-90deg);
}
@keyframes donghua{
0%{
transform: rotateX(20deg) rotateY(20deg);
}
100%{
transform: rotateX(360deg) rotateY(360deg);
}
}
</style>
</head>
<body>
<!--这是拼凑的盒子,将六个平面进行一点位移,让它们基于一个平面拼成一个完整盒子,移动基准面这样就完成了盒子的3D旋转-->
<div class="box">
<div class="box1">1</div>
<div class="box2">2</div>
<div class="box3">3</div>
<div class="box4">4</div>
<div class="box5">5</div>
<div class="box6">6</div>
</div>
</body>
</html>
代码段其实很简单就是对transform-style属性赋值了preserve-3d ;令它触发了3D效果,搭建了3D旋转舞台,要看见3D效果就需要给父元素添加3D旋转舞台,3D是个立体空间,大家有空间的概念会比较容易理解,就是平面的x,y轴上加了一个z轴。通过位移六个小盒子让它们到达合适的位置,给大盒子添加动画即可。
效果如下:
彩色盒子旋转 - Google Chrome 2022-10-15 16-11-32
总结
这其实就是对css3动画属性的其中一个应用,希望大家学习时能找到学习的乐趣,加油!
本文介绍了一种使用CSS3实现的彩色盒子3D旋转效果。通过设置transform-style为preserve-3d并利用transform属性,作者创建了一个动态旋转的立方体。每个面都赋予不同的颜色,并通过动画实现了流畅的3D旋转。
2320

被折叠的 条评论
为什么被折叠?



