CSS中animation的参数以及用法

animation一般是与 @keyframes一起用,来制作网页动画。
但animation有很多参数,每种参数对应的属性有不同含义。

参数类型如下:
animation-name :检索或设置对象所应用的动画名称
animation-duration :检索或设置对象动画的持续时间
animation-timing-function :检索或设置对象动画的过渡类型
animation-delay :检索或设置对象动画延迟的时间
animation-iteration-count :检索或设置对象动画的循环次数
animation-direction :检索或设置对象动画在循环中是否反向运动
animation-fill-mode :检索或设置对象动画时间之外的状态
animation-play-state :检索或设置对象动画的状态。w3c正考虑是否将该属性移除,因为动画的状态可以通过其它的方式实现,比如重设样式


1.animation-name

检索或设置对象所应用的动画名称,必须与规则@keyframes配合使用,因为动画名称由@keyframes定义
例如:

@keyframes move{
				from{
					left:150px;
				}to{
					left:790px;
				}
			}
animation:move 15s /* infinite */ forwards;

其中move就是animation-name


2.animation-timing-function

linear:线性过渡。等同于贝塞尔曲线(0.0, 0.0, 1.0, 1.0)
ease:平滑过渡。等同于贝塞尔曲线(0.25, 0.1, 0.25, 1.0)
ease-in:由慢到快。等同于贝塞尔曲线(0.42, 0, 1.0, 1.0)
ease-out:由快到慢。等同于贝塞尔曲线(0, 0, 0.58, 1.0)
ease-in-out:由慢到快再到慢。等同于贝塞尔曲线(0.42, 0, 0.58, 1.0)
step-start:等同于 steps(1, start) (数字表示每一份显示画面具体再分几份)
step-end:等同于 steps(1, end)
steps([, [ start | end ] ]?):接受两个参数的步进函数。第一个参数必须为正整数,指定函数的步数。第二个参数取值可以是start或end,指定每一步的值发生变化的时间点。第二个参数是可选的,默认值为end。
cubic-bezier(, , , ):特定的贝塞尔曲线类型,4个数值需在[0, 1]区间内


3.animation-iteration-count

infinite: 无限循环
: 指定对象动画的具体循环次数 (也可不加尖括号)


4.animation-direction

normal:正常方向
reverse:反方向运行
alternate:动画先正常运行再反方向运行,并持续交替运行
alternate-reverse:动画先反运行再正方向运行,并持续交替运行


5.animation-fill-mode

即动画完成时,是显示动画开始的状态还是结束时的状态。

none:默认值。不设置对象动画之外的状态
forwards:设置对象状态为动画结束时的状态
backwards:设置对象状态为动画开始时的状态
both:设置对象状态为动画结束或开始的状态

这个地方需要特别注意的是,如果steps(1,end)这样的模式,按照下文所讲,100%处可以为空,不影响动画,但是如果animation-fill-mode设置为forwards时,动画完毕显示的是最后一帧就会出问题。这时需要设置最后两个区间为一样的效果。


6.animation-play-state(hover适用)

running:运动
paused:暂停

  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: CSS animation属性用于创建动画效果。它允许您定义一个动画序列,该序列将在指定的时间内逐渐改变元素的样式。您可以使用CSS关键帧来定义动画的开始和结束状态,以及间的状态,以创建复杂的动画效果。以下是一个示例CSS动画属性的语法: ``` animation: name duration timing-function delay iteration-count direction fill-mode; ``` 其,各个属性的含义如下: - name:动画名称,定义在@keyframes规则。 - duration:动画持续时间,以秒(s)或毫秒(ms)为单位。 - timing-function:动画的时间函数,用于定义动画的加速度和减速度。 - delay:动画延迟时间,以秒(s)或毫秒(ms)为单位。 - iteration-count:动画重复次数,可以是一个具体的数字或infinite(无限循环)。 - direction:动画的播放方向,可以是normal(正向播放)或reverse(反向播放)。 - fill-mode:动画结束后元素的样式,可以是none(不改变),forwards(保持最后一帧的样式),backwards(使用第一帧的样式)或both(同时保持第一帧和最后一帧的样式)。 示例代码: ``` /* 定义动画序列 */ @keyframes example { 0% { background-color: red; } 50% { background-color: yellow; } 100% { background-color: green; } } /* 应用动画属性 */ div { animation: example 3s ease-in-out 1s infinite alternate; } ``` 这将创建一个名为example的动画序列,它将在3秒钟内逐渐将元素的背景颜色从红色变为绿色,并在1秒后开始播放。它将在infinite(无限循环)模式下播放,并在每次播放结束时反转动画方向。 ### 回答2: CSS动画属性(animation)是一种用于创建在网页上展示的动画效果的CSS属性。它提供了一种简单的方法来控制元素的动态变化,可以应用于各种网页元素,如文本、图像、按钮等。 使用animation属性,我们可以指定动画的名称、持续时间、动画效果、延迟和重复次数等。这些参数可以通过在CSS样式表定义一个带有@keyframes规则的动画序列来实现。 在@keyframes规则,我们可以定义关键帧(keyframe)的样式,这些关键帧代表了动画在不同时间点上的状态。通过在关键帧设置不同的样式,我们可以实现元素从开始状态到结束状态的平滑过渡。 animation属性包括多个子属性,包括动画名称(animation-name)、动画持续时间(animation-duration)、动画效果(animation-timing-function)、动画延迟(animation-delay)和动画重复次数(animation-iteration-count)等。这些子属性的值可以是具体的数值或关键字,用于指定动画的具体参数。 除了上述属性,animation还包括其他一些子属性,如动画方向(animation-direction)、动画填充模式(animation-fill-mode)和动画状态(animation-play-state)等,用于进一步控制动画的行为。 CSS动画属性的优点是能够通过简单的CSS代码实现复杂的动画效果,而不需要编写复杂的JavaScript代码。它可以提高网页的用户体验,增加页面的交互性,并使页面更加吸引人。 总之,CSS animation属性是一种用于创建网页动画效果的CSS属性,通过控制动画的不同参数和关键帧样式,可以实现各种各样的动画效果。它简单易用,能够提升网页的用户体验,并且可以用于各种类型的网页元素。 ### 回答3: CSS动画属性是一种让我们能够在网页创建各种动画效果的CSS属性。通过使用CSS动画属性,我们可以控制元素的位置、形状、颜色、透明度等属性的变化,从而实现各种各样的动画效果。 CSS动画属性的使用非常简单,只需通过在CSS文件声明一个@keyframes关键帧规则,定义元素在动画过程不同时间点的样式,然后将这个关键帧规则应用到具体的元素上即可。在这个过程,我们可以通过调整关键帧规则的样式参数来控制动画的表现。 CSS动画属性有一些常用的属性值,包括动画的持续时间(animation-duration)、变化速度曲线(animation-timing-function)、是否循环播放(animation-iteration-count)、延迟播放时间(animation-delay)等。这些属性值可以帮助我们更加灵活地控制动画效果。 除了这些基本的属性值外,CSS动画属性还有一些其他可选的属性值,可以实现更加复杂的动画效果。例如,我们还可以使用animation-fill-mode属性来控制动画播放前后元素的样式,使用animation-play-state属性来控制动画的播放状态等。 总的来说,CSS动画属性是一种非常强大且灵活的工具,可以通过简单的CSS代码实现各种各样的动画效果,使我们的网页更加生动和具有吸引力。同时,由于CSS动画属性的运行效率很高,所以在网页使用CSS动画属性通常能够提供良好的用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值