美文网首页
前端css中animation(动画)的使用

前端css中animation(动画)的使用

作者: 秒怂的哈士奇爱吃西瓜 | 来源:发表于2024-10-08 14:54 被阅读0次

前端css中animation的使用

一、前言

animation常伴随着[动画帧]@keyframes一起使用。本文主要说明animation都有啥属性,然后简单的进行使用。

二、主要内容说明
animation动画有多个属性,每个属性也有相应相关的值。另外我们使用过程中也可以使用简便方法,如“animation:”+后面各属性的值,用空格隔开+“;”的形式设置动画效果。举例如:animation: box1 3s linear 2s infinite;,表示创建一个叫box1,持续时间3s,开始到结束的动画速度不变,延迟2s后再开始,不断重复的动画。各值要按排序要求设置好。

(一)、animation-name(名称)属性

animation-name用于定义动画的名称。当我们创建一个动画时,给他编辑一个名称方便管理些。如某个动画取名为n,要关键帧@keyframes配合运行这个n动画,则关键帧里需要指定索引这个名称n,最后关键帧就可以确定是要进行这个n动画了。当然不给@keyframes关键帧指定对象运行动画,他也不懂要运行啥。

(二)、animation-duration(持续时间)属性

duration为持续时间。那么animation-duration则为定义动画的持续时间的属性,通常以秒(s)或毫秒(ms)为单位。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Animation 动画效果</title>
    <style>
        /* 定义.box-max类的样式,设置盒子的尺寸和背景颜色 */
        .box-max {
            width: 100px;             /* 盒子宽度 */
            height: 100px;            /* 盒子高度 */
            background-color: aqua;   /* 盒子背景颜色为水蓝色 */
            animation-name: box1;     /* 应用动画名称为box1 */
            animation-duration: 3s;   /* 动画持续时间为3秒 */
        }

        /* 定义名为box1的关键帧动画 */
        @keyframes box1 {
            0% {
                opacity: 1;           /* 动画开始时,盒子完全不透明 */
            }
            100% {
                opacity: 0.3;         /* 动画结束时,盒子透明度为0.3 */
            }
        }

    </style>
</head>
<body>
    <!-- 动画作用的元素,带有描述性文本 -->
    <div class="box-max">
        我是一个盒子,名称为box1,我会逐渐变透明。
    </div>
</body>
</html>

(三)、animation-timing-function属性

iming(时序),function(函数)。animation-timing-function用于控制动画的速度曲线。动画有运行的时段,有些时段我们想让它快些,有些时段我们想让它慢性,此时可以根据需要自己设置好animation-timing-function的值便可,常用的值有

linear ------ 从头到尾,动画的运行速度相同。
ease ------ 默认值,开始低速,然后加快,结束前变慢。
ease-in ------ 低速开始,结束前不断变快。
ease-out ------ 快速开始,结束前不断变慢。
ease-in-out ------ 开始和结束时段是慢速,中间部分速度最快。
cubic-bezier(n,n,n,n) ------ 贝塞尔曲线,可以自己设置速度曲线

(四)、animation-delay(延迟)属性

delay(延迟)。顾名思义,animation-delay为延迟的时间,动画开始前的延迟时间。因为有时候我们不需要动画马上运行,需要延迟一定的时间后再开始。单位同样取秒(s)或毫秒(ms)。
后面的源码3小盒子在等待期间,它是显示的,不是透明的状态效果,需要等待2s后才开始进行动画由透明变为不透明,这里是属性animation-fill-mode的默认值none设置的作用。后面也会讲到这部分关于动画前、后的内容。

(五)、animation-iteration-count(反复计数)属性

iteration(反复),count(计数)。animation-iteration-count用于定义动画播放的次数。一段动画我们设置的时间若有限,想让动画多运行几次可以用此属性设置。取值的方式主要有以下几种。
整数 ------ 设置整数值,如1、2、3,当为3时表示动画重复运行3次。
小数 ------ 设置小数,如2.5,那么表示动画重复2次,第三次进行一半。
infinite ------ 取值infinite(无限的)则重复运行动画

(六)、animation-direction(方向)属性

direction(方向),属性animation-direction用于设置动画的播放方式,是从头到尾正向播放,或是从尾到头的倒放。当我们设置关键帧,开始为0%,结束为100%的状态,正向为0%到100%的动画变换,反向倒放为100%到0%的动画变换。属性值主要有下面4个。

normal ------ 动画正放,动画一周期解释后重置到开始位置。
reverse ------- 动画倒放
alternate ------ 动画在奇数次正向播放,偶数次反向播放。如过一个动画是持续播放的,程序刚开始动画为第一次,这一次播放完毕便进行第二次,以此类推。当是奇数,如1,3,5···时,动画就正向播放;当是偶数,如2,4,6···时,动画就反向播放。
alternate-reverse ------ 与alternate属性相反,动画在奇数次反向播放,偶数次正向播放。

animation-fill-mode属性

animation-fill-mode主要用于定义动画前后的元素状态。主要属性值如下

none ------ 默认值,动画不会对元素在动画开始前或结束后形式参数产生任何影响。动画开始前,元素显示css非动画状态的形式;动画结束元素回到动画未运行前的初始状态。
forwards ------ 动画完成后,元素保持在动画的最后关键帧。就是动画运行到哪里,结束后它就保持在哪里,不会回初始点了。
backwards ------ 动画开始前,元素显示动画的第一个关键帧的样式。当我们设置一个盒子,进行的动画是刚开始开始是透明的,后面慢慢变得完全不透明。默认情况下,在等待运行前,盒子长啥样它就显示啥样,动画开始后才运行从透明变为不透明的状态,如源码3中的小盒子的属性,小盒子是延迟2s钟才开始运行动画,在这2s中的等待期盒子是显示盒子本身的具体样子,并不是以透明的状态进行等待。若要达到在动画运行前的等待期间为透明效果,就可以运用backwards的属性,在动画开始前的等待期,它显示的是第一关键帧的时候的样子,也就是透明的样子。
both ------ 结合了forwards和backwards的效果。动画开始前的等待期他是第一关键帧的样子,动画结束后保持在最后结束时的模样,也不会回到原点了。

(八)、animation-play-state(播放状态)属性

state(状态)。animation-play-state用于控制动画的播放状态。在动画过程中我们可以暂停动画,也可以暂停后继续运行。值主要有两个。即running和paused。当running时,动画正常播放。当paused时,动画则停在当前帧。

相关文章

  • CSS-3D知识

    1.CSS动画 1.1 CSS动画属性-animation animation:为CSS动画属性,使用该属性可以替...

  • animate.css的简单使用

    animate.css是很多前端开发都知道的一个基于css3 animation动画库,库中预设的动画效果几乎满足...

  • 实现动画的6种方案

    通常,前端实现动画的方案主要有6种:CSS3 transition、CSS3 animation、Canvas动画...

  • 2017-06-18

    css3中变形与动画(上) 1.Animation 动画定义animation动画2.Animation动画播放 ...

  • CSS3动画

    在CSS3中,动画效果使用animation属性来实现。animation属性和transition属性功能是相同...

  • CSS 动画

    css 动画可以产生多种效果,先简单介绍下 animation 的使用。 animation 属性 animati...

  • 博览- 品雪

    iOS 前端: 使用 iOS 8 Spring Animation API 创建动画 transitiontr...

  • H5动画效果

    我们使用CSS3可以实现动画,主要的方式是通过animation 实现的。 animation属性 animati...

  • H5中关于animation的属性介绍

    css3中的动画属性如果能够好好的使用,可以写出很多优美的动画 关于 animation-direction 有两...

  • 网页高级知识点(三)

    CSS3 transition动画 CSS3 transform变换 CSS3 animation动画

网友评论

      本文标题:前端css中animation(动画)的使用

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