CSS3立方体旋转就像是一个未知的神秘物体,不断地在吸引着人们的注意力。如今,我们将逐一拆分这个魔术师的魔法,一步一步来解释它的秘密。
.cube { width: 200px; height: 200px; position: relative; transform-style: preserve-3d; transform-origin: 50% 50%; animation: rotate 5s linear infinite; } .cube .side { position: absolute; width: 200px; height: 200px; background-color: #fff; opacity: 0.7; border: 1px solid #ccc; } .cube .front { transform: translateZ(100px); } .cube .back { transform: rotateX(180deg) translateZ(100px); } .cube .left { transform: rotateY(-90deg) translateZ(100px); } .cube .right { transform: rotateY(90deg) translateZ(100px); } .cube .top { transform: rotateX(90deg) translateZ(100px); } .cube .bottom { transform: rotateX(-90deg) translateZ(100px); } @keyframes rotate { from { transform: rotateY(0); } to { transform: rotateY(360deg); } }
首先,样式表里定义了一个容器
,宽高200px,位置为相对定位。重点是transform-style:preserve-3d这个属性,会让子元素在三维空间内绕父级元素旋转,并且transform-origin:50% 50%表示旋转中心在中心点。
接着定义了几个子元素,每个子元素代表一个面,使用.top、.bottom、.left等类名表示立方体的上下左右等方位。这里主要使用了transform属性,translateZ(100px)表示以Z轴向屏幕外移动100px。rotateX、rotateY表示以X轴或Y轴旋转。
最后,使用@keyframes定义一个旋转动画rotate,从0到360度。这时候,每个面都在不停地旋转。如果想要停止旋转,只需要把animation属性设置为空值即可。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。