您的当前位置:首页正文

使用CSS制作简易3D效果旋转木马实例代码

2020-11-27 来源:华拓网
最近看一下css3d的一些特性,想着也实验学习一下,制作个小demo之类的。就练习了一下。开发一个粗糙的选择木马效果,如图

使用CSS制作简易3D效果旋转木马实例代码

其实就是找到角度和位置,计算每根柱子的旋转角度摆放到3d空间的置顶位置即可。然后利用css的animate属性让3d舞台无线旋转,就有了一简易的旋转木马效果。感兴趣的可以看一下,可以把代码中的图片路径改为自己的图片地址就行了。直接可用。

代码如下:

<!DOCTYPE html><html><head lang="en">
 <meta charset="UTF-8">
 <title></title>
 <style>
 .box{
 width:800px;
 height: 600px;
 margin:0px auto;
 }
 .box .stage{
 perspective:0px;
 perspective-origin: center center;
 }
 .box .stage .container{
 transform-style: preserve-3d;

 }
 .box ul,.box li{
 list-style: none;
 margin:0px;
 padding:0px;
 text-align: center;
 font-weight: bold;
 }
 .box ul{
 margin-left:200px;
 width:400px;
 height:400px;
 }
 .box li{
 position: absolute;
 margin-left:200px;
 width:10px;
 height:300px;
 background: blue;
 color:red;
 transform-origin: 5px top;
 }

 .box li> .horse{
 width:100px;
 height:100px;
 position: absolute;
 top:298px;
 left:-55px;
 border-radius: 50px;
 background-image: url("horse.jpg");
 background-size: contain;
 }

 .box ul{
 animation: run 20s linear infinite;
 }

 @-webkit-keyframes run {
 0%{
 transform: rotateY(0deg);
 }
 100%{
 transform: rotateY(360deg);
 }
 }

 @-webkit-keyframes horserun {
 0%{
 transform: translateY(0px);
 }
 100%{
 transform: translateY(50px);
 }
 } </style>
 <script src="js/jquery-1.11.2.js"></script>
 <script>

 $(function(){ var len=$(".container>li").length;
 $(".container>li").each(function(e){ var index=$(".container>li").index(this)+1;
 $(this).css({ "transform":"rotateY("+360/len * index+"deg) skew(60deg)" });

 });
 }) </script></head><body><p class="box">
 <p class="stage">
 <ul class="container">
 <li class="horse1">
 <p class="horse"></p>
 </li>
 <li style="background: orange">
 <p class="horse"></p>
 </li>
 <li style="background: #ffff00">
 <p class="horse"></p>
 </li>
 <li style="background: green">
 <p class="horse"></p>
 </li>
 <li style="background: blue">
 <p class="horse"></p>
 </li>
 <li style="background:lightskyblue ">
 <p class="horse"></p>
 </li>
 <li style="background: purple">
 <p class="horse"></p>
 </li>
 <li style="background: black">
 <p class="horse"></p>
 </li>
 </ul>
 </p></p></body></html>