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 动画源代码

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSS transform 3D是一种CSS属性,用于实现在网页中对元素进行3D转换和动画效果。通过使用transform属性的rotateX、rotateY、rotateZ、translateX、translateY、translateZ、scaleX、scaleY、scaleZ等方法,可以实现元素的旋转、平移、缩放等3D效果。 在使用CSS transform 3D时,可以通过设置perspective属性来确定网页中的元素是2D变换还是3D变换。perspective属性规定了透视效果,决定了元素在页面上的显示效果。如果没有定义perspective属性,就没有3D效果。perspective属性可以在父元素上设置,也可以在当前元素上设置。 在CSS代码中,perspective属性可以使用具体的数值来设置透视点的大小,也可以使用perspective()函数来设置。通过设置perspective属性,可以调整元素的视觉效果,使其看起来更具有立体感。 通过使用CSS transform 3D的方法,可以实现元素在x轴、y轴和z轴上的缩放效果。在示例代码中,通过设置scaleX、scaleY和scaleZ方法,可以分别实现元素在x轴、y轴和z轴上的缩放效果。当鼠标悬停在元素上时,通过设置:hover伪类和transform属性,可以触发缩放效果。 总结来说,CSS transform 3D是一种用于实现网页元素3D转换和动画效果的CSS属性。通过设置transform属性的方法,可以实现元素的旋转、平移和缩放等3D效果。通过设置perspective属性,可以调整元素的透视效果,使其看起来更具有立体感。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [CSS3transform3d转换、CSS3动画](https://blog.csdn.net/m0_46324704/article/details/125860882)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [csstransform3D变换属性](https://blog.csdn.net/qq_50487248/article/details/130066660)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值