CSS3 3D动画 transform

今天我来总结一下 CSS3 的 3D 动画。话不多说,直接上代码讲解

一、首先3D 动画的几个重要样式
1.perspective 规定 3D 元素的透视效果。
- perspective:number;
- 元素距离视图的距离(近大远小原理)
2.backface-visibility 定义元素在不面对屏幕时是否可见。
- visible 背面是可见的
- hidden 背面是不可见得
3.transform-style:preserve-3d 使被转换的子元素保留其 3D 转换
4.perspective-origin 定义3D元素所基于的X轴和Y轴。该属性该属性允许您改变 3D 元素的底部位置。

HTML:

<div class="wapr">
    <div id = "container">
        <div class="front" style="background:rgba(230,9,61,0.3);">1</div>
        <div class="back" style="background:rgba(9,35,230,0.3);">2</div>
        <div class="left" style="background:rgba(247,153,6,0.3);">3</div>
        <div class="right" style="background:rgba(46,247,6,0.6);">4</div>
        <div class="top" style="background:rgba(247,6,221,0.6);">5</div>
        <div class="bottom" style="background:rgba(131,6,247,0.6);">6</div>
    </div>
<div>

CSS:

       *{margin:0;padding:0;}
       body{background:#cccccc;overflow: hidden;}
       .wapr{
            width:300px;
            height:300px;
            position:absolute;
            top:20%;
            left:20%;
            perspective:300px;
            -webkit-perspective:300px;
            -moz-perspective:300px;
            -ms-perspective:300px;
            background:url(http://www.w3cplus.com/sites/default/files/blogs/2013/1311/bg.jpg);
       }
       #container{ 
            position: absolute;
            top:37%;
            left:37%;
            transform-style:preserve-3d;
            -webkit-transform-style:preserve-3d;
            -ms-transform-style:preserve-3d;
            -moz-transform-style:preserve-3d;
            transform:translateZ(130px) rotate3d(0,0,0,0deg);
            animation:dong 12s linear  infinite;
            -webkit-animation:dong 12s linear  infinite;
       }

       @keyframes dong{
          0%{
             transform:translateZ(130px)  rotate3d(0,0,0,180deg);

          }
          20%{
            transform:translateZ(130px)  rotate3d(1,1,0,360deg);

          }
          40%{
             transform:translateZ(130px)  rotate3d(1,1,0,180deg); 

          }
          60%{
            transform:translateZ(130px)  rotate3d(1,1,0,0deg);
          }
          80%{
            transform:translateZ(130px)  rotate3d(1,1,0,-180deg);
          }
          100%{
            transform:translateZ(130px) rotate3d(0,0,0,-360deg);
          }
       }
       @-webkit-keyframes dong{
          0%{
             transform:translateZ(130px)  rotate3d(0,0,0,180deg);

          }
          20%{
            transform:translateZ(130px)  rotate3d(1,1,0,360deg);

          }
          40%{
             transform:translateZ(130px)  rotate3d(1,1,0,180deg); 

          }
          60%{
            transform:translateZ(130px)  rotate3d(1,1,0,0deg);
          }
          80%{
            transform:translateZ(130px)  rotate3d(1,1,0,-180deg);
          }
          100%{
            transform:translateZ(130px) rotate3d(0,0,0,-360deg);
          }
       }
       #container div{
            width:75px;
            height:75px;
            font-size:30px;
            font-weight: bold;
            text-align: center;
            line-height:75px;
            position:absolute;
            box-sizing:border-box;
            border:2px solid #046902;
            color:white;
       }
       .front{
            transform:translateZ(37.5px);
            -webkit-transform:translateZ(37.5px);
       }
       .back{
            transform:rotateX(180deg) translateZ(37.5px);
            -webkit-transform:rotateX(180deg) translateZ(37.5px);
       }
       .left{
            transform:rotateY(-90deg) translateZ(37.5px);
            -webkit-transform:rotateY(-90deg) translateZ(37.5px);
       }
       .right{
            transform:rotateY(90deg) translateZ(37.5px);
            -webkit-transform:rotateY(90deg) translateZ(37.5px);
       }
       .top{
            transform:rotateX(90deg) translateZ(37.5px);
            -webkit-transform:rotateX(90deg) translateZ(37.5px);
       }
       .bottom{
            transform:rotateX(-90deg) translateZ(37.5px);
            -webkit-transform:rotateX(-90deg) translateZ(37.5px);
       }

源代码:
css3 3D 动画源代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值