说一下c3的动画

-

 1. transition 过渡

    transition-property:all;//监听属性

    transition-duration:1s;//过渡时间

    transition-timing-function:linear;//运动速率

    transition-delay:1s;//过渡延迟时间



```html

<style>

    div{

        width:100px;

        height:100px;

        background-color:#008c8c;

        transition:width 2s linear 1s;

    }



    div:hover{

        width:200px;

        height:200px;

    }

</style>

<div></div>

```



    transition-timing-function:cubic-bezier(x1, y1, x2, y2);//x值必须(0,1)



- 2. animation

    animation-name//名称

    animation-duration//执行时间

    animation-timing-function//运动速率

    animation-delay//延迟时间

    animation-iteration-count:infinite;//执行无限次,默认值为1

    animation-direction:reverse;//反向运动,默认值normal

    animation-play-state:paused;//不推荐使用

    animation-fill-mode:none | forwards | backwards | both;//forwards:在动画运动结束后,保持动画最后一帧的状态;backwards:在动画运动开始前,保持动画第一帧的状态;both:在动画结束胡,保持动画最后一帧的状态, 在动画开始前,保持动画第一帧的状态;



```html

<style>

@keyframes run{

    0%{

        left:0;

        top:0;

    }

    25%{

        left:100px;

        top:0;

    }

    50%{

        left:0;

        top:100px;

    }

    75%{

        left:0;

        top:0;

    }

    100%{

        left:0;

        top:0;

    }

}



div{

    position:absolute;

    width:100px;

    height:100px;

    background-color:red;

    animation:run 4s;

}

</style>

```



- 3. step

    steps(1, end); === step-end;

    steps(1, start); === step-start;



```html

<style>

    @keyframes change-color{

        0% {

            background-color:red;

        }

        25% {

            background-color:green;

        }

        50% {

            background-color:blue;

        }

        75% {

            background-color:black;

        }

        100% {

            background-color:#fff;

        }

    }



    div{

        width:100px;

        height:100px;

        background-color:red;

        animation:change-color 4s steps(1, end);/*steps(几步执行,)

            start:保留下一帧状态,直到这段动画时间结束

            end:保留当前帧状态,直到这段动画时间结束

        */

    }

</style>

```    



- 4. transform

    rotate:

        transform:rotate(0deg);//旋转度数

        taransform-origin:0 0;//旋转中心点



        transform:rotateX(0deg);//围绕X轴旋转

        transform:rotateY(0deg);//围绕Y轴旋转

        transform:rotateZ(0deg);//围绕Z轴旋转



        transform:rotate3d(x,y,z,angle);//围绕自定义矢量旋转

    scale: 伸缩的是此元素的变化坐标轴的刻度(若x为2,则原来x轴的100被拉伸为200的长度,但是现在100的刻度代表200的长度。就像皮筋一样上面标上刻度100,被拉长了2倍,但是皮筋上的刻度未变,但现在100刻度代表了200的长度一样。所以再对x轴进行长度操作如平移100刻度,实际上平移了200的长度)

        scale(x, y);//x.横坐标伸缩的倍数;y.纵坐标伸缩的倍数;

        scalex();

        scaley();

        scalez();

        scale3d();



        可以叠加操作

            transform:scale(.5, .5) scale(3, 3);//实际操作倍数0.5*3

    skew: 倾斜

        transform:skew(xdeg, ydeg)

            不仅倾斜了,坐标轴刻度也被拉伸了,因为倾斜过后,元素高度保持不变



            倾斜的是坐标轴而不是元素本身,若设置了xdeg那么y轴角度变化,若设置了ydeg那么x轴角度发生变化。



            xdeg:表示x轴扭曲度

            x扭曲 = y旋转+y伸缩

            x取值为正,x轴不动,y轴朝着x轴正方向倾斜x度数

            x取值为负,x轴不动,y轴朝着x轴负方向倾斜x度数



            ydeg:表示x轴扭曲度

            y扭曲 = x旋转+x伸缩

            y取值为正,y轴不动,x轴朝着y轴正方向倾斜x度数

            y取值为负,y轴不动,x轴朝着y轴负方向倾斜y度数

 

  

  translate:平移

        transform:translate(xpx,ypx);//平移xpx和ypx

        transform:translatex(xpx);

        transform:translatey(ypx);

        transform:translatez(zpx);



        元素居中,不知道元素的宽度:

            left:50%;

            transform:translatex(-50%);

    

    用于父元素的属性 

    perspective:景深(按照投影理解,比较好理解)

        取值1到正无穷px,默认值为0

    perspective-origin: 300px 200px;//从元素左上角开始计算 



    用于自身元素的属性

    transform:perspective(800px);



    用于父元素属性

        transform-style:preserve-3d;//渲染3d效果

    

    用于自身元素的属性:

        backface-visibility:visible | hidden;//背面元素是否可见



```html

<!-- 3D旋转图片墙 -->

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

    <style>

        *{

            margin:0;

            padding:0;

        }



        :root,

        body{

            height:100%;

            

        }



        body{

            perspective:2000px;

            transform-style:preserve-3d;

        }



        @keyframes run{

            0%{

                transform:translate(-50%, -50%) rotatey(0deg);

            }

            100%{

                transform:translate(-50%, -50%) rotatey(360deg);

            }

        }



        .wrapper{

            position: absolute;

            left:calc(50%);

            top:calc(50%);

            transform:translate(-50%, -50%);

            width:300px;

            height:300px;

            transform-style:preserve-3d;

            animation:run 10s infinite;

        }



        .image{

            position:absolute;

            background-color:#fff;

            width:300px;

            height:300px;

        }

        .image:nth-of-type(1){

            transform:rotatey(45deg) translateZ(800px);

            background-image:url(1.jpg);

        }

        .image:nth-of-type(2){

            transform:rotatey(90deg) translateZ(800px);

            background-image:url(2.jpg);

        }

        .image:nth-of-type(3){

            transform:rotatey(135deg) translateZ(800px);

            background-image:url(3.jpg);

        }

        .image:nth-of-type(4){

            transform:rotatey(180deg) translateZ(800px);

            background-image:url(4.jpg);

        }

        .image:nth-of-type(5){

            transform:rotatey(225deg) translateZ(800px);

            background-image:url(5.jpg);

        }

        .image:nth-of-type(6){

            transform:rotatey(270deg) translateZ(800px);

            background-image:url(6.jpg);

        }

        .image:nth-of-type(7){

            transform:rotatey(315deg) translateZ(800px);

            background-image:url(7.jpg);

        }

        .image:nth-of-type(8){

            transform:rotatey(360deg) translateZ(800px);

            background-image:url(8.jpg);

        }

    </style>

</head>

<body>

    <div class="wrapper">

        <div class="image"></div>

        <div class="image"></div>

        <div class="image"></div>

        <div class="image"></div>

        <div class="image"></div>

        <div class="image"></div>

        <div class="image"></div>

        <div class="image"></div>

    </div>

    <script>

        document.body.onmousemove = function(e){

            this.style.perspectiveOrigin = "" + e.pageX + "px " + e.pageY + "px";

        }

    </script>

</body>

</html>

```

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值