绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
css3 动画讲解
2019-08-12 11:38:12

JavaScript前端 


前言:在CSS3中,动画效果有俩种方式:

种:transition 属性只能通过指定属性的开始值与结束值,然后在这两个属性值之间进行平滑过渡来实现动画效果,因此只能实现简单的动画效果。transition属性功能是相同的,都是通过改变元素的“属性值”来实现动画效果。

第二种:animation 属性通过定义多个关键帧以及定义每个关键帧(@keyframes)中元素的属性值来实现复杂的动画效果。

过渡

transition

设置元素当过渡效果,可以实现元素不同状态间的平滑过渡,经常用来制作动画效果。

语法:transition: < property > < duration > < timing-function > < delay > ;

参数:

transition-property 语法

transition-duration 语法

transition-duration: time;

transition-timing-function 语法

理解steps

steps 函数指定了一个阶跃函数

个参数指定了时间函数中的间隔数量(必须是正整数)

第二个参数可选,接受 start 和 end 两个值,指定在每个间隔的起点或是终点发生阶跃变化,默认为 end。

step-start等同于steps(1,start),动画分成1步,动画执行时为开始左侧端点的部分为开始;

step-end等同于steps(1,end):动画分成一步,动画执行时以结尾端点为开始,默认值为end。

transition-delay 语法

.box {

/* 分别设置多个属性 */

transition: height 1s ease, width 2s linear;

}

1.1 过渡的缺点

transition的优点在于简单易用,但是它有几个很大的局限。

transition需要事件触发,所以没法在网页加载时自动发生。

transition是一次性的,不能重复发生,除非一再触发。

transition只能定义开始状态和结束状态,不能定义中间状态,也就是说只有一个开始状态和结束状态。

一条transition规则,只能定义一个属性的变化,不能控制多个属性。

Animation就是为了解决这些问题而提出的。

@keyframes简介

使用animation属性定义CSS3动画需要2步:

(1)定义动画 ;(@keyframes)

(2)调用动画;(animation)

在CSS3中,在使用动画之前,我们必须使用@keyframes规则定义动画。

语法:

我们可以使用@keyframes规则定义动画,但是这样定义的动画并不会自动执行,我们还需要“调用动画”,这样动画才会生效。其实这就跟JavaScript的函数一样,首先必须定义函数,然后只有调用函数,函数才会执行生效。

1.2 动画animation

说明:注意,animation-name 调用的动画名需要和@keyframes规则定义的动画名称完全一致(区分大小写),如果不一致将不具有任何动画效果

如果动画合写的语法:animation: name duration timing-function delay iteration-count direction;

关键帧的自由定制案例:

执行多个动画案例:

Transform

transform属性应用于元素的2D或3D转换。字面上就是变形,改变的意思。

这个属性允许将元素进行旋转,缩放,移动,倾斜等。

JavaScript前端 2019-08-10 18:52:26

前言:在CSS3中,动画效果有俩种方式:

种:transition 属性只能通过指定属性的开始值与结束值,然后在这两个属性值之间进行平滑过渡来实现动画效果,因此只能实现简单的动画效果。transition属性功能是相同的,都是通过改变元素的“属性值”来实现动画效果。

第二种:animation 属性通过定义多个关键帧以及定义每个关键帧(@keyframes)中元素的属性值来实现复杂的动画效果。

过渡

transition

设置元素当过渡效果,可以实现元素不同状态间的平滑过渡,经常用来制作动画效果。

语法:transition: < property > < duration > < timing-function > < delay > ;

参数:

transition-property 语法

transition-duration 语法

transition-duration: time;

transition-timing-function 语法

理解steps

steps 函数指定了一个阶跃函数

个参数指定了时间函数中的间隔数量(必须是正整数)

第二个参数可选,接受 start 和 end 两个值,指定在每个间隔的起点或是终点发生阶跃变化,默认为 end。

step-start等同于steps(1,start),动画分成1步,动画执行时为开始左侧端点的部分为开始;

step-end等同于steps(1,end):动画分成一步,动画执行时以结尾端点为开始,默认值为end。

transition-delay 语法

.box {

/* 分别设置多个属性 */

transition: height 1s ease, width 2s linear;

}

1.1 过渡的缺点

transition的优点在于简单易用,但是它有几个很大的局限。

transition需要事件触发,所以没法在网页加载时自动发生。

transition是一次性的,不能重复发生,除非一再触发。

transition只能定义开始状态和结束状态,不能定义中间状态,也就是说只有一个开始状态和结束状态。

一条transition规则,只能定义一个属性的变化,不能控制多个属性。

Animation就是为了解决这些问题而提出的。

@keyframes简介

使用animation属性定义CSS3动画需要2步:

(1)定义动画 ;(@keyframes)

(2)调用动画;(animation)

在CSS3中,在使用动画之前,我们必须使用@keyframes规则定义动画。

语法:

我们可以使用@keyframes规则定义动画,但是这样定义的动画并不会自动执行,我们还需要“调用动画”,这样动画才会生效。其实这就跟JavaScript的函数一样,首先必须定义函数,然后只有调用函数,函数才会执行生效。

1.2 动画animation

说明:注意,animation-name 调用的动画名需要和@keyframes规则定义的动画名称完全一致(区分大小写),如果不一致将不具有任何动画效果

如果动画合写的语法:animation: name duration timing-function delay iteration-count direction;

关键帧的自由定制案例:

执行多个动画案例:

Transform

transform属性应用于元素的2D或3D转换。字面上就是变形,改变的意思。

这个属性允许将元素进行旋转,缩放,移动,倾斜等。

分享好友

分享这个小栈给你的朋友们,一起进步吧。

IT知识联盟
创建时间:2019-07-05 15:30:45
分享收集到的大小知识点
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • 王超
    栈主

小栈成员

查看更多
  • ?
  • youou
  • gamebus
  • chinacc
戳我,来吐槽~