美文网首页
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