css3 3d旋转-正方体

xiaoxiao2021-02-27  383

首先展示下效果

html结构:

<div id="state"> <div class="cube"> <div class="side front"></div> <div class="side back"></div> <div class="side left"></div> <div class="side right"></div> <div class="side top"></div> <div class="side botton"></div> </div> </div> <div class="side top"></div> <div class="side botton"></div> </div></div>

1、舞台的搭建

设置视距属性,形成3D效果:(perspective) #state{ /*搭建舞台*/ margin: 200px auto; width: 300px; height: 300px; perspective: 1200px; /*设置3D视距*/ font-size: 5em; font-weight: bold; }

2、容器的设置

正方体的搭建,是通过定位将六个面的正方形,都重叠在一起,形成一个面,并设置子元素的3d效果,让子元素通过旋转和平移操作组成正方体: ps:注意得设置容器的宽高,否则,设置动画时,会出现旋转中心不是正方体的中点,而是某一条边。 .cube{ /*设置正方体*/ position: relative; transform-style:preserve-3d; width:100%; height: 100%; animation: x-rotate 6s linear infinite;/*设置动画*/ }

3、六个正方形的通过旋转和平移形成正方体:戳这里-3d坐标参考

.side { /*设置定位使得正方形重叠*/ color:blue; text-align: center; width: 300px; height: 300px; line-height: 300px; position: absolute; opacity: 0.7; background-color: black; } .front { transform: translateZ(150px); /*往Z轴正平移等于物体离我们近了*/ background-color: chartreuse; } .back{ transform:translateZ(-150px) ;/*往Z轴负平移等于物体离我们远了*/ background-color: sandybrown;}.left{ transform: rotateY(-90deg) translateZ(150px); /*必须旋转后再平移,否则旋转的中点会改变,Z轴的平移方向可以参考3d坐标参考*/ background-color: aqua;}.right{ background-color:cornflowerblue; transform: rotateY(90deg) translateZ(150px);}.top{ background-color:brown; transform: rotateX(90deg) translateZ(150px);}.botton{ background-color:saddlebrown; transform: rotateX(-90deg) translateZ(150px);} 最后附上详细资料的博客: 3d立方体资料一 资料二 资料三
转载请注明原文地址: https://www.6miu.com/read-2897.html

最新回复(0)