900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > css3 3d旋转图片立方体特效代码

css3 3d旋转图片立方体特效代码

时间:2018-07-14 03:31:01

相关推荐

css3 3d旋转图片立方体特效代码

纯 CSS3 3D 旋转立方体动画特效,该 3D 立方体使用 CSS3 perspective 制作,可以在水平方向、垂直方向和平面视角方向旋转,使用 CSS 来制作立方体动画,效果非常好。下面来看看制作方法。

HTML 结构

立方体结构中,使用一个 wrapper div 来包裹立方体。在里面使用 6 个 div 来制作立方体的 6 个面。

<div class="wrap"> <div class="cube"> <div class="front">front</div> <div class="back">back</div> <div class="top">top</div> <div class="bottom">bottom</div> <div class="left">left</div> <div class="right">right</div> </div></div>

分别为立方体的六个面,使用 CSS 来将立方体的 6 个面放置到正确的位置上

CSS 样式

设置景深(perspective):观察距离,更好的体现立体性

和变换原点(perspective-origin):变换属性的原点

.wrap {perspective: 800px; perspective-origin: 50% 100px;}

给包含立方体 6 个面的立方体的容器.cube 提供样式:

.cube {/*添加相对定位*/position: relative; width: 200px; /*形成3d空间*/transform-style: preserve-3d;}

给立方体容器 200 像素的宽度,并设置为相对定位,这样在它里面的立方体的 6 个面可以设置为绝对定位。preserve-3d 属性确保所有 6 个面都处于 3D 立体状态。给6个面设置统一样式:

.cube div {/*绝对定位*/position: absolute; width: 200px;height: 200px;}

给立方体6 个面制作css变形效果,以使它们组装为一个立方体。

.back {transform: translateZ(-100px) rotateY(180deg);}.right {transform: rotateY(-270deg) translateX(100px); transform-origin: top right;}.left {transform: rotateY(270deg) translateX(-100px); transform-origin: center left;}.top {transform: rotateX(-90deg) translateY(-100px); transform-origin: top center;}.bottom {transform: rotateX(90deg) translateY(100px); transform-origin: bottom center;}.front {transform: translateZ(100px);}

rotate 的值可以旋转立方体的各个面,使上面的文字处于正确的位置上。rotateX绕x轴旋转,rotateY绕y轴旋转

而translate的值使元素在指定容器移动。translateX在x轴移动,translateY在y轴移动,translateZ在Z轴上移动。

使6个面形成立方体

垂直旋转立方体

/*设置关键帧*/@keyframes spin-vertical {from {transform: rotateX(0); } to {transform: rotateX(-360deg); }} .cube-wrap.vertical .cube {margin: 0 auto; transform-origin: 0 100px;/*使用关键帧 调整动画为匀速 一直运动*/ animation: spin-vertical 5s infinite linear;}.cube-wrap.vertical .top {transform: rotateX(-270deg) translateY(-100px);} .cube-wrap.vertical .back {transform: translateZ(-100px) rotateX(180deg;}.cube-wrap.vertical .bottom {transform: rotateX(-90deg) translateY(100px);}

这样就完成了立方体的旋转特效。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。