返回顶部
首页 > 资讯 > 前端开发 > JavaScript >CSS3中Animation属性的用法介绍
  • 727
分享到

CSS3中Animation属性的用法介绍

2024-04-02 19:04:59 727人浏览 薄情痞子
摘要

这篇文章主要介绍“css3中Animation属性的用法介绍”,在日常操作中,相信很多人在CSS3中Animation属性的用法介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解

这篇文章主要介绍“css3中Animation属性的用法介绍”,在日常操作中,相信很多人在CSS3中Animation属性的用法介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CSS3中Animation属性的用法介绍”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

在开始介绍Animation之前我们有必要先来了解一个特殊的东西,那就是”Keyframes”,我们把他叫做“关键帧”,玩过flash的朋友可能对这个东西并不会陌生。下面我们就一起来看看这个“Keyframes”是什么东西。前面我们在使用transition制作一个简单的transition效果时,我们包括了初始属性和最终属性,一个开始执行动作时间和一个延续动作时间以及动作的变换速率,其实这些值都是一个中间值,如果我们要控制的更细一些,比如说我要第一个时间段执行什么动作,第二个时间段执行什么动作(换到flash中说,就是第一帧我要执行什么动作,第二帧我要执行什么动作),这样我们用Transition就很难实现了,此时我们也需要这样的一个“关键帧”来控制。那么CSS3的Animation就是由“keyframes”这个属性来实现这样的效果。下面我们一起先来看看Keyframes:

Keyframes具有其自己的语法规则,他的命名是由”@keyframes”开头,后面紧接着是这个“动画的名称”加上一对花括号“{}”,括号中就是一些不同时间段样式规则,有点像我们css的样式写法一样。对于一个”@keyframes”中的样式规则是由多个百分比构成的,如“0%”到”100%”之间,我们可以在这个规则中创建多个百分比,我们分别给每一个百分比中给需要有动画效果的元素加上不同的属性,从而让元素达到一种在不断变化的效果,比如说移动,改变元素颜色,位置,大小,形状等,不过有一点需要注意的是,我们可以使用“fromt”“to”来代表一个动画是从哪开始,到哪结束,也就是说这个 “from”就相当于”0%”而”to”相当于”100%”,值得一说的是,其中”0%”不能像别的属性取值一样把百分比符号省略,我们在这里必须加上百分符号(“%”)如果没有加上的话,我们这个keyframes是无效的,不起任何作用。因为keyframes的单位只接受百分比值。

Keyframes可以指定任何顺序排列来决定Animation动画变化的关键位置。其具体语法规则如下:

CSS Code复制内容到剪贴板

  1. keyframes-rule: '@keyframes' IDENT '{' keyframes-blocks '}';   

  2.  keyframes-blocks: [ keyframe-selectors block ]* ;   

  3.  keyframe-selectors: [ 'from' | 'to' | PERCENTAGE ] [ ',' [ 'from' | 'to' | PERCENTAGE ] ]*;  

把上面的语法综合起来

CSS Code复制内容到剪贴板

  1. @keyframes IDENT {   

  2.      from {   

  3.        Properties:Properties value;   

  4.      }   

  5.      Percentage {   

  6.        Properties:Properties value;   

  7.      }   

  8.      to {   

  9.        Properties:Properties value;   

  10.      }   

  11.    }  

   或者全部写成百分比的形式:

CSS Code复制内容到剪贴板

  1. @keyframes IDENT {   

  2.    0% {   

  3.       Properties:Properties value;   

  4.    }   

  5.    Percentage {   

  6.       Properties:Properties value;   

  7.    }   

  8.    100% {   

  9.       Properties:Properties value;   

  10.    }   

  11.  }  

其中IDENT是一个动画名称,你可以随便取,当然语义化一点更好,Percentage是百分比值,我们可以添加许多个这样的百分比,Properties为css的属性名,比如说left,background等,value就是相对应的属性的属性值。值得一提的是,我们from和to 分别对应的是0%和100%。这个我们在前面也提到过了。到目前为止支技animation动画的只有WEBkit内核的浏览器,所以我需要在上面的基础上加上-webkit前缀,据说Firefox5可以支持css3的 animation动画属性。

我们来看一个实例:

CSS Code复制内容到剪贴板

  1. @-webkit-keyframes 'test' {   

  2.      0% {   

  3.         margin-left: 100px;   

  4.         background: green;   

  5.      }   

  6.      40% {   

  7.         margin-left: 150px;   

  8.         background: orange;   

  9.      }   

  10.      60% {   

  11.         margin-left: 75px;   

  12.         background: blue;   

  13.      }   

  14.      100% {   

  15.         margin-left: 100px;   

  16.         background: red;   

  17.      }   

  18.   }  

这里我们定义了一个叫“test”的动画,他的动画是从0%开始到100%时结束,从中还经历了一个40%和60%两个过程,上面代码具体意思是:test动画在0%时元素定位到left为100px的位置背景色为green,然后40%时元素过渡到left为150px的位置并且背景色为orange,60%时元素过渡到left为75px的位置,背景色为blue,最后100%结束动画的位置元素又回到起点left为100px处,背景色变成red。假设置我们只给这个动画有10s的执行时间,那么他每一段执行的状态如下图所示:
CSS3中Animation属性的用法介绍

Keyframes定义好了以后,我们需要怎么去调用刚才定义好的动画“test”

CSS3的animation类似于transition属性,他们都是随着时间改变元素的属性值。他们主要区别是transition需要触发一个事件(hover事件或click事件等)才会随时间改变其css属性;而animation在不需要触发任何事件的情况下也可以显式的随着时间变化来改变元素css的属性值,从而达到一种动画的效果。这样我们就可以直接在一个元素中调用animation的动画属性,基于这一点,css3的animation就需要明确的动画属性值,这也就是回到我们上面所说的,我们需要keyframes来定义不同时间的css属性值,达到元素在不同时间段变化的效果。

下面我们来看看怎么给一个元素调用animation属性

CSS Code复制内容到剪贴板

  1. .demo1 {   

  2.      width: 50px;   

  3.      height: 50px;   

  4.      margin-left: 100px;   

  5.      background: blue;   

  6.      -webkit-animation-name:'wobble';  

  7.      -webkit-animation-duration: 10s;  

  8.      -webkit-animation-timing-function: ease-in-out;   

  9.      -webkit-animation-delay: 2s;  

  10.      -webkit-animation-iteration-count: 10;  

  11.      -webkit-animation-direction: alternate;  

  12.   }  

CSS Animation动画效果将会影响元素相对应的css值,在整个动画过程中,元素的变化属性值完全是由animation来控制,动画后面的会覆盖前面的属性值。如上面例子:因为我们这个demo只是在不同的时间段改变了demo1的背景色和左边距,其默认值是:margin-left:100px;background: blue;但当我们在执行动画0%时,margin-left:100px,background:green;当执行到40%时,属性变成了:margin-left:150px;background:orange;当执行到60%时margin-left:75px;background:blue;当动画 执行到100%时:margin-left:100px;background: red;此时动画将完成,那么margin-left和background两个属性值将是以100%时的为主,他不会产生叠加效果,只是一次一次覆盖前一次出将的css属性。就如我们平时的css一样,最后出现的权根是最大的。当动画结束后,样式回到默认效果。

到此,关于“CSS3中Animation属性的用法介绍”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: CSS3中Animation属性的用法介绍

本文链接: https://lsjlt.com/news/76751.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • CSS3中Animation属性的用法介绍
    这篇文章主要介绍“CSS3中Animation属性的用法介绍”,在日常操作中,相信很多人在CSS3中Animation属性的用法介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2024-04-02
  • CSS3的resize属性用法介绍
    本篇内容介绍了“CSS3的resize属性用法介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!语法:re...
    99+
    2024-04-02
  • css3新属性border-radius的用法介绍
    这篇文章主要介绍“css3新属性border-radius的用法介绍”,在日常操作中,相信很多人在css3新属性border-radius的用法介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方...
    99+
    2024-04-02
  • CSS3 Background 属性介绍
    与border类似,ie对新的background属性都是不支持的。多的就不说了,来看看,新的background 属性吧。 1、background-origin  控制背景图片区域 三个取值,由外向内分别为: border-b...
    99+
    2023-01-31
    属性 Background
  • CSS3 Color属性介绍
    通常我们使用css控制颜色时,均采用16进制的RGB模式,如 color:#ff0000; 这边先介绍一下几种色彩模式及取值规则 HSL色彩模式是工业界的一种颜色标准,是通过对色调(H)、饱和度(S)、亮度(L)三个颜色通道的变化以及它们相...
    99+
    2023-01-31
    属性 Color
  • CSS3 Border属性介绍
    通过边框属性,我们可以实现一些类似按钮或者背景图片的替代效果。因为大量的图片素材对网页的加载速度影响也很大,但是由于现在的浏览器对css3的兼容与支持各有不同,所以现在要用css替代 配合图片达到的效果还是不太现实。 言归正转,来看看css...
    99+
    2023-01-31
    属性 Border
  • css3中animation属性有什么用
    小编给大家分享一下css3中animation属性有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!   css3anim...
    99+
    2024-04-02
  • css3中transition属性的详细介绍
    这篇文章主要讲解了“css3中transition属性的详细介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“css3中transition属性的详细介绍”...
    99+
    2024-04-02
  • css3中transform属性详细介绍
    本篇内容主要讲解“css3中transform属性详细介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“css3中transform属性详细介绍”吧!CSS3变...
    99+
    2024-04-02
  • css3中animation动画属性怎么用
    这篇文章给大家介绍css3中animation动画属性怎么用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。   CSS主要是用于描绘网页的样式和布局而CSS3是最新的CSS标准,提供...
    99+
    2024-04-02
  • CSS3中animation-duration属性有什么用
    这篇文章主要为大家展示了“CSS3中animation-duration属性有什么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“CSS3中animation-...
    99+
    2024-04-02
  • 如何在css3中使用animation属性
    这篇文章给大家介绍如何在css3中使用animation属性,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。animation-name 动画名称,可以有多个值,用逗号隔开,表示绑定了多个动画animation-name...
    99+
    2023-06-08
  • CSS3两大实用属性介绍
    本篇内容主要讲解“CSS3两大实用属性介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS3两大实用属性介绍”吧!一、使用 :not() 在菜单上应用/取消...
    99+
    2024-04-02
  • CSS3中的border-radius属性详细介绍
    这篇文章主要讲解了“CSS3中的border-radius属性详细介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS3中的border-radius属...
    99+
    2024-04-02
  • CSS3圆角属性的详细介绍
    本篇内容介绍了“CSS3圆角属性的详细介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!border-ra...
    99+
    2024-04-02
  • 怎么在CSS3中使用Animation动画属性
    本篇文章为大家展示了怎么在CSS3中使用Animation动画属性,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。要使用animation动画,先要熟悉一下keyframes,Keyframes的语法...
    99+
    2023-06-08
  • CSS3动画属性Animation有什么用
    这篇文章将为大家详细讲解有关CSS3动画属性Animation有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 属性 刻画 CSS @keyframes ...
    99+
    2024-04-02
  • css中position属性的用法介绍
    这篇文章主要介绍“css中position属性的用法介绍”,在日常操作中,相信很多人在css中position属性的用法介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”cs...
    99+
    2024-04-02
  • CSS中margin属性的用法介绍
    本篇内容主要讲解“CSS中margin属性的用法介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS中margin属性的用法介绍”吧!盒模型接触过 CSS ...
    99+
    2024-04-02
  • CSS中margin属性的介绍及用法
    这篇文章主要介绍“CSS中margin属性的介绍及用法”,在日常操作中,相信很多人在CSS中margin属性的介绍及用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CSS中...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作