美文网首页
CSS3动画属性的区别(Transitions, Transfo

CSS3动画属性的区别(Transitions, Transfo

作者: 六月繁花开 | 来源:发表于2018-08-02 14:11 被阅读16次

    CSS3动画相关的几个属性是:transition, transform, animation;我分别理解为过渡,变换,动画。虽意义相近,但具体角色不一。

    transition指过渡啦,就是从a点都b点,就像过江坐渡轮,是有时间的,是连续的,一般针对常规CSS属性;transform指变换,就那几个固定的属性:旋转啦,缩放啦,偏移啦什么的,与独立于远房亲戚transition使用,但是,效果就是很干涩机械的旋转移动。要是配合transition属性,旋转啊什么的,就会很平滑。animation最先安家于Safari浏览器,自成一家,与transition和transform有老死不相往来之感,但是要说单挑的话,animation要比transition厉害些。

    一:CSS3 transition其作用是:平滑的改变CSS的值。无论是点击事件,焦点事件,还是鼠标hover,只要值改变了,就是平滑的,就是动画。于是乎,只要一个整站通用的class,就可以很轻松的渐进增强地实现动画效果,超有实用价值的说。

    transiton属性是下面几个属性的缩写:

    transition-property

    指定过渡的属性值,比如transition-property:opacity就是只指定opacity属性参与这个过渡。

    transition-duration

    指定这个过渡的持续时间

    transition-delay

    延迟过渡时间

    transition-timing-function

    指定过渡动画缓动类型,有ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier()

    其中,linear线性过度,ease-in由慢到快,ease-out由快到慢,ease-in-out由慢到快在到慢

    例如下面这个很简单的例子:

    .trans {

        ...

        -webkit-transition: background-color 0.3s ease;

        -moz-transition: background-color 0.3s ease;

        -o-transition: background-color 0.3s ease;

        transition: background-color 0.3s ease;

    }

    .trans:hover {

        background-color: #486AAA;

        color: #fff;

    }

    二:transform

    transform指变换,使用过photoshop的人应该知道里面的Ctrl+T自由变换。transform就是指的这个东西,拉伸,压缩,旋转,偏移。见下面示例代码:

    .trans_skew { transform: skew(35deg); }

    .trans_scale { transform:scale(1, 0.5); }

    .trans_rotate { transform:rotate(45deg); }

    .trans_translate { transform:translate(10px, 20px); }

    结果就有类似下面的些效果:

    ransform属性要是加上transition的过渡特性,那可就是如虎添翼,樱木花道配上流川枫啊,可以产生不少美妙的火花,例如下面这个例子,关键代码如下:

    .trans_effect {

        -webkit-transition:all 2s ease-in-out;

        -moz-transition:all 2s ease-in-out;

        -o-transition:all 2s ease-in-out;

        -ms-transition:all 2s ease-in-out;   

        transition:all 2s ease-in-out;

    }

    .trans_effect:hover {

        -webkit-transform:rotate(720deg) scale(2,2);

        -moz-transform:rotate(720deg) scale(2,2);

        -o-transform:rotate(720deg) scale(2,2);

        -ms-transform:rotate(720deg) scale(2,2);

        transform:rotate(720deg) scale(2,2);       

    }

    三:animations

    @-webkit-keyframes resize {

        0% {

            padding: 0;

        }

        50% {

            padding: 0 20px;

            background-color:rgba(190, 206, 235, 0.2);       

        }

        100% {

            padding: 0 100px;

            background-color:rgba(190, 206, 235, 0.9);

        }

    }

    .anim_box:hover {

        -webkit-animation-name: resize;

        -webkit-animation-duration: 1.5s;

        -webkit-animation-iteration-count: 4;

        -webkit-animation-direction: alternate;

        -webkit-animation-timing-function: ease-in-out;

    }

    相关文章

      网友评论

          本文标题:CSS3动画属性的区别(Transitions, Transfo

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