CSS3动画 @keyframes

CSS3 @keyframes 规则


定义和用法

通过 @keyframes 规则,您能够创建动画。

创建动画的原理是,将一套 CSS 样式逐渐变化为另一套样式。

在动画过程中,您能够多次改变这套 CSS 样式。

以百分比来规定改变发生的时间,或者通过关键词 "from" 和 "to",等价于 0% 和 100%。

0% 是动画的开始时间,100% 动画的结束时间。

为了获得最佳的浏览器支持,您应该始终定义 0% 和 100% 选择器。

注释:请使用动画属性来控制动画的外观,同时将动画与选择器绑定。

语法

@keyframes animationname {keyframes-selector {css-styles;}}
描述
animationname必需。定义动画的名称。
keyframes-selector

必需。动画时长的百分比。

合法的值:

  • 0-100%
  • from(与 0% 相同)
  • to(与 100% 相同)
css-styles必需。一个或多个合法的 CSS 样式属性。

实例1

使 div 元素匀速向下移动:

[html] view plain copy
  1. <style>   
  2. div  
  3. {  
  4. width:100px;  
  5. height:100px;  
  6. background:red;  
  7. position:relative;  
  8. animation:mymove 5s infinite;  
  9. -moz-animation:mymove 5s infinite; /* Firefox */  
  10. -webkit-animation:mymove 5s infinite; /* Safari and Chrome */  
  11. -o-animation:mymove 5s infinite; /* Opera */  
  12. }  
  13.   
  14. @keyframes mymove  
  15. {  
  16. from {top:0px;}  
  17. to {top:200px;}  
  18. }  
  19.   
  20. @-moz-keyframes mymove /* Firefox */  
  21. {  
  22. from {top:0px;}  
  23. to {top:200px;}  
  24. }  
  25.   
  26. @-webkit-keyframes mymove /* Safari and Chrome */  
  27. {  
  28. from {top:0px;}  
  29. to {top:200px;}  
  30. }  
  31.   
  32. @-o-keyframes mymove /* Opera */  
  33. {  
  34. from {top:0px;}  
  35. to {top:200px;}  
  36. }  
  37. </style>  
  38. </head>  
  39. <body>  
  40.   
  41. <p><b>注释:</b>本例在 Internet Explorer 中无效。</p>  
  42.   
  43. <div></div>  

实例 2

在一个动画中改变多个 CSS 样式:

  1. @keyframes mymove  
  2. {  
  3. 0%   {top:0pxbackground:redwidth:100px;}  
  4. 100% {top:200pxbackground:yellow; width:300px;}  
  5. }  
  6.   
  7. @-moz-keyframes mymove /* Firefox */  
  8. {  
  9. 0%   {top:0pxbackground:redwidth:100px;}  
  10. 100% {top:200pxbackground:yellow; width:300px;}  
  11. }  
  12.   
  13. @-webkit-keyframes mymove /* Safari 和 Chrome */  
  14. {  
  15. 0%   {top:0pxbackground:redwidth:100px;}  
  16. 100% {top:200pxbackground:yellow; width:300px;}  
  17. }  
  18.   
  19. @-o-keyframes mymove /* Opera */  
  20. {  
  21. 0%   {top:0pxbackground:redwidth:100px;}  
  22. 100% {top:200pxbackground:yellow; width:300px;}  
  23. }  

实例 3

带有多个 CSS 样式的多个 keyframe 选择器:

  1. @keyframes mymove  
  2. {  
  3. 0%   {top:0px; left:0pxbackground:red;}  
  4. 25%  {top:0px; left:100pxbackground:blue;}  
  5. 50%  {top:100px; left:100pxbackground:yellow;}  
  6. 75%  {top:100px; left:0pxbackground:green;}  
  7. 100% {top:0px; left:0pxbackground:red;}  
  8. }  
  9.   
  10. @-moz-keyframes mymove /* Firefox */  
  11. {  
  12. 0%   {top:0px; left:0pxbackground:red;}  
  13. 25%  {top:0px; left:100pxbackground:blue;}  
  14. 50%  {top:100px; left:100pxbackground:yellow;}  
  15. 75%  {top:100px; left:0pxbackground:green;}  
  16. 100% {top:0px; left:0pxbackground:red;}  
  17. }  
  18.   
  19. @-webkit-keyframes mymove /* Safari and Chrome */  
  20. {  
  21. 0%   {top:0px; left:0pxbackground:red;}  
  22. 25%  {top:0px; left:100pxbackground:blue;}  
  23. 50%  {top:100px; left:100pxbackground:yellow;}  
  24. 75%  {top:100px; left:0pxbackground:green;}  
  25. 100% {top:0px; left:0pxbackground:red;}  
  26. }  
  27.   
  28. @-o-keyframes mymove /* Opera */  
  29. {  
  30. 0%   {top:0px; left:0pxbackground:red;}  
  31. 25%  {top:0px; left:100pxbackground:blue;}  
  32. 50%  {top:100px; left:100pxbackground:yellow;}  
  33. 75%  {top:100px; left:0pxbackground:green;}  
  34. 100% {top:0px; left:0pxbackground:red;}  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值