3D效果

作者: 楚乌 | 来源:发表于2016-11-19 14:13 被阅读0次
transform-style:preserve:给需要做3D动画的元素的父元素开启3D效果

当然,只给元素开启3D效果是没有效果的,这个时候我们需要设置舞台的深度,也就是设置Z轴的大小。

注意:当你设置后,你移动的深度不能够超出舞台深度,一超过舞台深度,你设置的动画效果将会超出Z轴,从而无法使用。

那么我们开启3D效果后,如果需要添加效果,比如:平移translate、旋转rotate……

那么旋转的话就必须有一个原点,或是叫中心点,那么这个时候我们就需要用到一个属性:

perspective:开启3D模式的舞台中心点(中心点)的位置

无论是开启3D效果,模式,还是设置舞台深度,亦或是设置基准点,都是给父元素设置的。

以下是一个立方体旋转效果:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>立方体</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        html{  
           background: -webkit-radial-gradient(center, ellipse, #430d6d 0%, #000000 100%);  
           background: radial-gradient(ellipse at center, #430d6d 0%, #000000 100%);  
           height: 100%;  
        } 
        .big{  
           -webkit-perspective: 1000px;  
           width: 20em;  
           height: 20em;  
           left: 50%;  
           top: 50%;  
           margin-left: -10em;  
           margin-top: -10em;  
           position: absolute;  
        }
        .box{  
            position: absolute;  
            width: 100%;  
            height: 100%;  
            -webkit-transform-style: preserve-3d;
            -webkit-transtion: all 2.5s;
            -webkit-animation: move 5s infinite linear;
       }  

       @keyframes move{
            50%{
                -webkit-transform: rotateX(360deg) rotateY(360deg);
            }
            100%{
                -webkit-transform: rotateX(720deg) rotateY(720deg);
            }
       }
  
       .box * {  
           background: -webkit-linear-gradient(left, rgba(54, 226, 248, 0.5) 0px, rgba(54, 226, 248, 0.5) 3px, rgba(0, 0, 0, 0) 0px), -webkit-linear-gradient(top, rgba(54, 226, 248, 0.5) 0px, rgba(54, 226, 248, 0.5) 3px, rgba(0, 0, 0, 0) 0px);  
           -webkit-background-size: 2.5em 2.5em;  
           background-color: rgba(0, 0, 0, 0.5);  
           position: absolute;  
           width: 100%;  
           height: 100%;  
           border: 2px solid rgba(54, 226, 248, 0.5);  
           -webkit-box-shadow: 0 0 5em rgba(0, 128, 0, 0.4);  
  
       } 
        section:first-child{
            -webkit-transform: translateZ(10em);
        }
        section:nth-child(2){
            -webkit-transform: rotateX(180deg) translateZ(10em); 
        }
        section:nth-child(3){
            -webkit-transform: rotateY(-90deg) translateZ(10em);
        }
        section:nth-child(4){
            -webkit-transform: rotateY(90deg) translateZ(10em); 
        }
        section:nth-child(5){
            -webkit-transform: rotateX(90deg) translateZ(10em);
        }
        section:last-child{
            -webkit-transform: rotateX(-90deg) translateZ(10em); 
        }
    </style>
</head>
<body>
    <div class="big">
        <div class="box">
            <section class="section1"></section>
            <section class="section2"></section>
            <section class="section3"></section>
            <section class="section4"></section>
            <section class="section5"></section>
            <section class="section6"></section>
        </div>
    </div>
</body>
</html>

相关文章

  • CSS3动画3D

    3D效果 给需要做3D动画的元素的父元素开启3D效果 transform-style: preserve-sd; ...

  • css实现简单的3D效果

    css实现简单3D房间效果 纯3D效果实现上述效果,总体思路就是旋转容器,为容器贴纸。 这是一个简单的3D立方体空...

  • CSS 效果

    按钮背景渐变效果 利用边框画一个三角形状 提示消息 阴影效果 3D盒子 3D按钮效果 SVG 按钮效果 按钮涟漪效果

  • ViewPager切换动画

    1. 3D画廊效果 2.相互连接显示效果 3.水滴指示器效果 4.动态设置是否可滚动效果 1. 3D画廊效果 关键...

  • Flutter 实现酷炫的3D效果

    老孟导读:此文讲解3个酷炫的3D动画效果。 下面是要实现的效果: Flutter 中3D效果是通过 Transfo...

  • 收集的两个动画,3d霓虹灯和在3d范围内的运动

    3D霓虹灯效果: 小球在3D范围内运动:

  • PS样式3D城市背景效果

    PS样式3D城市背景效果支持在任何版本的Photoshop中使用,可以把3D城市背景效果与文字结合在一起,用3D城...

  • CSS3 - 3D位移

    使用3D位移时,需给要表现出3D效果元素的父元素增加透视效果样式,实现近大远小: 3D移动 参数说明:x:设置元素...

  • iOS Demo合集 反弹的火球、若隐若现的电波、图像滚筒(3D

    反弹的火球 反弹的火球 若隐若现的电波 若隐若现的电波 图像滚筒(3D)浏览效果 图像滚筒(3D)浏览效果 旋转的...

  • Web蓝天白云的极致体验

    还在感叹Web 3D云效果(《怎样用CSS做出3D效果的云》)的时候,发现一个将这种效果用到极致的网站。这个网站貌...

网友评论

      本文标题:3D效果

      本文链接:https://www.haomeiwen.com/subject/spfepttx.html