视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
js如何实现动画
2020-11-27 20:13:24 责编:小采
文档

1.css的transition。

语法:

transition: property duration timing-function delay;
property:填写需要变化的css属性如:width,line-height,font-size,color等;
duration:完成过渡效果需要的时间(2s 或者2000ms)
timing-function:完成效果的速度曲线(linear,ease,ease-in,ease-out等等)
描述
linear匀速(等于 cubic-bezier(0,0,1,1))。
ease从慢到快再到慢(cubic-bezier(0.25,0.1,0.25,1))。
ease-in慢慢变快(等于 cubic-bezier(0.42,0,1,1))。
ease-out慢慢变慢(等于 cubic-bezier(0,0,0.58,1))。
ease-in-out先变快再到慢(等于 cubic-bezier(0.42,0,0.58,1))。渐显渐隐效果
cubic-bezier(n,n,n,n)在 cubic-bezier 函数中定义自己的值。可能的值是 0 至 1 之间的数值。
timing-delay:动画效果的延迟触发时间(2s 或者2000ms)。默认值分别为:all 0 ease 0

transition抓住了所设置变化属性的起始态和完成态,通过设定的速度曲线来完成动画。可以涉及到各种变化的css属性,默认为all,则所有变化的属性都会在出发时,以动画的形式展现出来。

这种动画方式是css3的,因此ie9以下是不支持的,其他的浏览器需要加前缀,并且只有两态,不支持自定义中间的状态。

例子:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<style type="text/css">

p

{

width:100px;

height:100px;

background:red;

transition:width 2s;

-moz-transition:width 2s; /* Firefox 4 */

-webkit-transition:width 2s; /* Safari and Chrome */

-o-transition:width 2s; /* Opera */

}

p:hover

{

width:300px;

}

</style>

<p></p>

tips:transform是一种变化属性,该属性允许我们对元素进行旋转、缩放、移动或倾斜。可以作为transition中需要变化的属性。

   前缀:

      transform:rotate(9deg);
      -ms-transform:rotate(9deg); /* Internet Explorer */
      -moz-transform:rotate(9deg); /* Firefox */
      -webkit-transform:rotate(9deg); /* Safari 和 Chrome */
      -o-transform:rotate(9deg); /* Opera */  

2.css3的animation属性

语法:

animation: name duration timing-function delay iteration-count direction;
name:keyframe的名称,也就是定义了关键帧的动画的名称,这个名称用来区别不同的动画。
duration:完成动画所需要的时间(2s 或者 2000ms)
timing-function:完成动画的速度曲线
delay:动画开始之前的延迟iteration-count:动画播放次数
direction:是否轮流反向播放动画(normal:正常顺序播放,alternate下一次反向播放)如果把动画设置为只播放一次,则该属性没有效果。使用animation属性制作动画可以更加灵活的设置动画帧,通过不同keyframe(动画帧)的设置,实现很多优雅的效果,keyframe中的百分数是动画完成总时间的比例。
animation是设置总的动画效果,而keyframe中设置上相应的动画名字,然后在keyframe中设置具体的动画效果。当然由于是css3的属性,仍然需要注意它的兼容性,加上必须的前缀。例子:

1

2

3

4

5

6

下载本文

显示全文