汇总之--css3 transition,transform2d-3d

个人博客
如有错误请指正谢谢大家

transition
  • 基本写法
            /* 过渡属性 可以指定 某一个 或者某一些 如果想要所有的都能够过渡 使用all即可 */
     transition-property: width,height; 
            /* 持续时间 */
        transition-duration: 2s;
            /* 延迟时间 */
        transition-delay: 1s,2s;
            /* 过渡的动画线型
                linear
                ease-in
                ease-out
                ...
                实际开发的时候 不会使用transition来制作 太长的动画效果 所以 使用默认的即可
                ease
             */
             transition-timing-function: ease; 
需要注意的一点是,不要使用all,如果是指定就指定是height或者别的属性,可以优化性能
  • 复合写法
 transition: width 1s 1s linear, 
         height 1s 2s ease,background-color 1s 3s; 
transform2d
  • translateX() translateY()
transform: translate(10px, 20px) */
transform: translateX(20px) translateY(20px);
  • rotate()
transform: rotate(360deg);
  • scale()
/* 
scaleX
scaleY用法类似于 上面的移动
*/
transform: scale(.5, .5);
  • skew()
transform: skew(0,45deg );
tansform 3d
  • 判断方向的方法:
        x轴:从左往右
        y轴:从上往下
        z轴:从里向外;

        旋转方向的判断 左手定则
        大拇指 指向 旋转的 那个轴的方向 
        剩余的四根手指 弯曲的方向 就是旋转的方向

        为了能够有 3d的 一个透视效果 需要为 旋转对象的 父元素 添加 透视属性

        透视属性
            设置的是 3d变换的元素 距离 浏览器的 距离

        沿着Z轴缩放 看不出效果
.container{
            border: 1px solid gray;
            overflow: hidden;

            /*  距离 浏览器 的距离  */
            perspective: 1000px;


        }
  • transform-style: preserve-3d
    如果需要有3d的视觉,还需要添加transform-style: preserve-3d;

  • transform-origin: left center
    这是控制transform变换的圆点

小技巧:

在3d中有时候需要看不到背面:

        /* 设置 反面看不到 */
            backface-visibility: hidden;

demo:3d小盒子效果

TYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        body{
            /* 希望 3d效果明显一点 可以设置的小一些 越大 越不明显 */
            perspective: 500px;
        }
        .box{
            width: 200px;
            height: 200px;
            margin: 100px auto;
            border: 1px solid gray;
            position: relative;
            transition: all 1s;

            /* 将 3d变换的 父元素 添加一个属性 即可看到 3d的变换效果 */
            transform-style: preserve-3d;
        }
        .box .item{
            width: 100%;
            height: 100%;
            font-size: 150px;
            text-align: center;
            line-height: 200px;
            font-weight: 900;
            position: absolute;
        }
        .item:nth-child(1){
            background: orange; 
            transform: rotateY(0deg) translateZ(100px);
        }
        .item:nth-child(2){
            background: red;
            transform: rotateY(180deg) translateZ(100px);   
        }
        .item:nth-child(3){
            background: blue;
            transform: rotateY(90deg) translateZ(100px);        
        }
        .item:nth-child(4){
            background: pink;
            transform: rotateY(-90deg) translateZ(100px);       
        }
        .item:nth-child(5){
            background: green;
            transform: rotateX(90deg) translateZ(100px);        
        }
        .item:nth-child(6){
            background: yellowgreen;
            transform: rotateX(-90deg) translateZ(100px);       
        }

        /* 设置过渡效果 */
        .box:hover{
            transform: rotateX(450deg) rotateY(450deg);
        }
    </style>
</head>
<body>
    <div class="box">
        <div class="item">1</div>
        <div class="item">2</div>
        <div class="item">3</div>
        <div class="item">4</div>
        <div class="item">5</div>
        <div class="item">6</div>
    </div>
</body>
</html>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值