首页 > 其他分享 >前端css中animation(动画)的使用

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

时间:2024-12-27 17:43:48浏览次数:7  
标签:动画 关键帧 animation ------ 播放 css 属性

前端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为持续时间

<!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时,动画则停在当前帧。

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

标签:动画,关键帧,animation,------,播放,css,属性
From: https://www.cnblogs.com/MaoZhuaShi/p/18636361

相关文章

  • CSS实现一个自定义的滚动条
    要使用CSS创建一个自定义的滚动条,你可以使用伪元素和CSS的伪类来控制滚动条的外观和行为。以下是一个简单的例子,展示如何为任何HTML元素添加一个自定义的滚动条样式:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=de......
  • CSS实现无限滚动的列表
    CSS本身不能实现无限滚动的列表,无限滚动通常需要结合HTML、CSS和JavaScript来完成。以下是一个简单的实现无限滚动的列表的示例,它使用了JavaScript来动态加载和展示内容。<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="w......
  • 一些常用css基础
    问题一:calc(100vh)是100%吗calc(100vh)和100%在很多情况下可以提供相似的结果,但它们并不完全相同,具体取决于你如何使用它们以及它们应用的上下文。100vh100vh代表整个视口(viewport)的高度的100%。视口是指浏览器窗口内部的区域,不包括浏览器的UI元素,如工具栏和标签栏。vh......
  • 免费送源码(计算机毕业设计原创定制):Java+CSS+springboot Springboot高校医务室管理系统
    摘 要科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代。在现实运用中,应用软件的工作规则和开发步骤,采用java技术建设高校......
  • CSS 2D3D变换
    1.2d位移2d位移可以改变元素的位置。具体使用方法如下1.先给元素添加转换属性transform2.编写transform的具体值translate()translateX()translateY()可以写长度值,百分比,百分比是相当于自身的长宽。1.位移与相对定位相似,都不脱离文档流。不会影响其他元素。2.位移对行内......
  • 简单实用的jQuery表单输入框浮动标签动画特效插件
    phAnimate是一款简单实用的jquery表单输入框浮动标签动画特效插件。通过该插件,你可以非常轻松的为表单input元素添加浮动标签动画效果。 在线预览 下载  使用方法在页面中引入jquery和phanimate.jquery.js文件。<scripttype="text/javascript"src="js/jquery.min.j......
  • anime.js-强大的Javascript动画库插件
    anime.js是一款功能强大的Javascript动画库插件。anime.js可以和CSS3属性,SVG,DOM元素和JS对象一起工作,制作出各种高性能,平滑过渡的动画效果。在线预览  下载               使用方法在页面中引入anime.min.js文件。<scripttype="te......
  • 前端面试题合集(一)——HTML/CSS/Javascript/ES6
    前端经典面试题总结前端开发领域涵盖了大量的知识点,面试中的经典问题通常集中在HTML、CSS、JavaScript及ES6等基础技能上。以下是针对这些知识点的一些总结:1.HTMLHTML是Web页面结构的基础,它定义了网页的内容和结构。面试中的HTML问题常常涉及到常见标签的使用......
  • 使用css写一个悬浮飞行的动画
    要创建一个悬浮飞行的动画,你可以使用CSS的@keyframes来定义动画,并将其应用于一个元素。以下是一个简单的示例,展示了如何制作一个元素在页面上“悬浮飞行”的动画效果:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="wid......
  • 你看过哪些优秀的css相关的开源项目?
    在前端开发领域,CSS相关的开源项目众多,其中不乏一些优秀的代表。以下是我看过的一些值得推荐的CSS开源项目:Font-Awesome:这是一个非常流行的开源项目,提供了大量的可缩放矢量图标。这些图标可以定制大小、颜色、阴影等CSS样式,已经被数百万设计师和开发者广泛使用。Animate.css:这是......