小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
我们都知道游乐场里的旋转木马,这篇文章就是用来绘制类似旋转木马动作的。
绘制
多个面围绕一中心进行旋转,就像旋转木🐴一样。
结构
我这里设置了八个面,当然你也可以设置更多的面,可以让它更酷炫点。
<div class="eyes">
<div class="box">
<div class="reddiv">1</div>
<div class="bluediv">2</div>
<div class="pinkdiv">3</div>
<div class="greendiv">4</div>
<div class="golddiv">5</div>
<div class="purplediv">6</div>
<div class="orangediv">7</div>
<div class="cyandiv">8</div>
</div>
</div>
设置样式
同样是利用景深实现3d立体效果,然后加以动画,进行旋转转动。为了便于区分我们,给了每个面不同的颜色。
.eyes{
perspective: 1200px;
perspective-origin: 50% 50%;
}
.box{
transform-style: preserve-3d;
width:1200px;
height: 600px;
transition: all 10s ease 0.2s;
}
.box div{
width: 300px;
height: 200px;
position: absolute;
top: 200px;
left: 450px;
opacity: 0.8;
font-size: 30px;
color: white;
line-height: 200px;
text-align: center;
}
.reddiv{
background-color: red;
transform: rotateY(-45deg) translateZ(380PX);
}
.bluediv{
background-color: blue;
transform: rotateY(0deg) translateZ(380PX);
}
.pinkdiv{
background-color: pink;
transform: rotateY(45deg) translateZ(380PX);
}
.greendiv{
background-color:green;
transform: rotateY(90deg) translateZ(380PX);
}
.golddiv{
background-color: gold;
transform: rotateY(135deg) translateZ(380PX);
}
.purplediv{
background-color: purple;
transform: rotateY(180deg) translateZ(380PX);
}
.orangediv{
background-color: orange;
transform: rotateY(-135deg) translateZ(380PX);
}
.cyandiv{
background-color: cyan;
transform: rotateY(-90deg) translateZ(380PX);
}
.box:hover{
transform: rotateY(360deg);
}
总结
我们在平面中使用的旋转只是单纯的让元素在平面旋转一定角度,在三维旋转中稍微要复杂一些,属性当然还是用我们的transform,三维旋转有三个函数分别对应三个维度的旋转。我们利用景深和旋转可以做出很多炫酷的效果。
今天的文章css绘制旋转木马分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/23292.html