CSS的animation属性使用实例讲解

所属分类: 网页制作 / CSS 阅读数: 644
收藏 0 赞 0 分享

一、animation的语法
 
1、@keyframes——插入关键帧
 
(1)FormTo形式:

CSS Code复制内容到剪贴板
  1. @keyframes demo {   
  2.      from {   
  3.        Properties:Properties value;   
  4.      }   
  5.      Percentage {   
  6.        Properties:Properties value;   
  7.      }   
  8.      to {   
  9.        Properties:Properties value;   
  10.      }   
  11. }  

 
 
(2)百分比的形式:
 

CSS Code复制内容到剪贴板
  1. @keyframes demo {   
  2.       0% {   
  3.          Properties:Properties value;   
  4.       }   
  5.       Percentage {   
  6.          Properties:Properties value;   
  7.       }   
  8.       100% {   
  9.          Properties:Properties value;   
  10.       }   
  11. }  

 
 
2、animation-name——定义动画的名称

animation-name: none | “动画的名称”;
 
 
(1)动画的名称是由Keyframes创建的动画名,这里必须和创建的动画名保持一致。如果不一致,将不能实现任何动画效果
(2)none为默认值,当值为none时,将没有任何动画效果
 
3、animation-duration
 
animation-duration: time (s)
 
 
animation-duration是指定元素播放动画所持续的时间,取值为数值,单位为秒(s),其默认值为“0”。
 
4、animation-timing-function
 
animation-timing-function:ease(缓冲) || ease-in(加速) || ease-out(减速) || ease-in-out(先加速后减速) || linear(匀速) || cubic-bezier(自定义一个时间曲线)
 
 
animation-timing-function是用来指定动画的播放方式,具有以下六种变换方式:ease(缓冲);ease-in(加速);ease-out(减速);ease-in-out(先加速后减速);linear(匀速);cubic-bezier(自定义一个时间曲线)。
 
5、animation-delay
 
animation-delay: time(s)
 
 
animation-delay:是用来指定元素动画开始时间。取值为数值,单位为秒(s),其默认值为“0”。这个属性和animation-duration使用方法是一样的。
 
6、animation-iteration-count
 
animation-iteration-count:infinite || number
 
animation-iteration-count是指定元素播放动画的循环次数,其取值为数字,默认值为“1”或者infinite(无限次数循环)。
 
7、animation-direction
 
animation-direction: normal || alternate
 
animation-direction是指定元素动画播放的方向,如果是normal,那么动画的每次循环都是向前播放;如果是alternate,那么动画播放在第偶数次向前播放,第奇数次向反方向播放。
 
8、animation-play-state

animation-play-state:running || paused
 
 
animation-play-state主要是用来控制元素动画的播放状态。其主要有两个值,running和paused,其中running为默认值。这个属性目前很少内核支持,所以只是稍微提一下。

二、animation事件接口
其实目前基本的就是三个事件而已:开始、迭代、结束。开始和结束都知道是什么意思。至于这个迭代,由于animation中有个iteration-count属性,它可以定义动画重复的次数,因此动画会有许多次开始和结束。但是真正的“开始”和“结束”事件是关于整个动画的,他们只会触发一次,而中间由于重复动画引起的“结束并开始下一次”将触发整个“迭代”事件。
  这三个事件的标准名称是:
    开始:animationstart
    迭代:animationiteration
    结束:animationend
  但是目前版本的Chrome需要加上webkit前缀,而且还要注意大小写
    开始:webkitAnimationStart
    迭代:webkitAnimationIteration
    结束:webkitAnimationEnd
  最后是实例代码和截图

CSS Code复制内容到剪贴板
  1. <style>   
  2. @-webkit-keyframes test {   
  3.   0% {background:red;}   
  4.   25% {background:green;}   
  5.   50% {background:blue;}   
  6.   100% {background:red;}   
  7. }   
  8. @keyframes test {   
  9.   0% {background:red;}   
  10.   25% {background:green;}   
  11.   50% {background:blue;}   
  12.   100% {background:red;}   
  13. }   
  14. </style>   
  15. <script>   
  16. onload=function(){   
  17.   var html=document.documentElement;   
  18.   //定义事件回调函数   
  19.   var start=function(){   
  20.     console.log("start");   
  21.   },iteration=function(e){   
  22.     console.log(e);   
  23.   },end=function(){   
  24.     console.log("end");   
  25.   };   
  26.   //绑定事件   
  27.   html.addEventListener("webkitAnimationIteration",iteration);   
  28.   html.addEventListener("animationiteration",iteration);   
  29.   html.addEventListener("webkitAnimationStart",start);   
  30.   html.addEventListener("animationstart",start);   
  31.   html.addEventListener("webkitAnimationEnd",end);   
  32.   html.addEventListener("animationend",end);   
  33.   //开始执行动画   
  34.   html.style.animation=   
  35.   html.style.WebkitAnimation=   
  36.   "test 1s linear 0s 3";   
  37. };   
  38. </script>  

更多精彩内容其他人还在看

Opera中国的WEB标准课程

网页制作Webjx文章简介:在这篇文章里,我要向大家介绍我和其他很多人花费数月时间开发的一个课程——Web标准课程,该课程旨在向大家提供Web设计和开发的坚实基础,无论读者是谁,此教程完全免费、可访问,并且不需要预备知识。当然,我主要还
收藏 0 赞 0 分享

CSS样式表渐进增强的基本概念

网页制作Webjx文章简介:如果你挠着头想弄清楚优雅降级和渐进增强的区别,我告诉你,这是视角问题。优雅降级和渐进增强都考虑网站在各种设备的各种浏览器上如何良好运转。两者区别的关键在于它们各自关注的焦点,以及这种关注对工作流程的影响
收藏 0 赞 0 分享

简单介绍Web Developer插件制作网页

网页制作Webjx文章简介:Firefox浏览器是一个良好支持W3C标准的开放源代码的浏览器,拥有Linux/Windows/Mac版本。因为Firefox浏览器良好支持W3C标准,所以使用Firefox来调试网页是非常好的。 Firefox浏览器是
收藏 0 赞 0 分享

CSS布局带来的巨大影响:CSS display属性值

网页制作Webjx文章简介:网页元素应用上那些与表格相关的display属性值后,能够模仿出与表格相同的特性。我将会在该文中给大家演示这种方法给CSS布局带来的巨大影响。 应原书编辑要求,先在文章顶部给出链接:《Everything You
收藏 0 赞 0 分享

用div css模拟表格对角线

这只是探讨一种CSS模拟表格对角线的用法,实际在工作中可能觉得这样做有点小题大作,这不是本主题讨论的重点。如果对此深以为然的朋友,请一笑过之 首先声明: 这只是探讨一种CSS模拟表格对角线的
收藏 0 赞 0 分享

IE Firefox在css中的差别 (部分)

1、单位问题 问题:任何距离的数值ie可以不加单位,ff必须要求写单位(0除外) 解决:写全单位如padding:0px; 2、水平居中 问题:div里的内容,ie默认为center,而ff默认left 解决:mairgin:0px auto; 3、高度问题
收藏 0 赞 0 分享

不用js可以实现信息提示效果

[code] <style> body { font:verdena; font-size:14px; color:#000 } h1{ font:verdena; font-size:22px; color:#000 } h2{ font:verdena;
收藏 0 赞 0 分享

CSS解决未知高度的垂直水平居中自适应问题

今天有人问起,晚上试着写出来,供参考; 以下代码兼容主流浏览器IE6、IE7、Firefox、Opera。 从最简单的开始………… 一、如何让一个DIV水平居中? 这个简单不作过多说明! [code] <st
收藏 0 赞 0 分享

CSS cursor 属性 -- 鼠标指针样式效果

取值: [ [<uri> ,]* [ auto | crosshair | default | pointer | move | e-resize | ne-resize | nw-resize | n-resize | se-resize | sw-resize |
收藏 0 赞 0 分享

css 简单区别ie6,ie7,firefox的写法

同一样式里可以这样 [code] margin:17px; FF +margin:17px; IE6 IE7 _margin:17px; IE6 [/code] 按这个顺序,刚好区分开三个浏览器
收藏 0 赞 0 分享
查看更多