欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

CSS3 - animation - 说中

程序员文章站 2022-04-02 15:25:47
...
CSS3 animation

定义keyframes

@keyframes colorchange {
    0%   { background-color: #00F; /* from: blue */ }
    25%  { background-color: #F00; /* red        */ }
    50%  { background-color: #0F0; /* green      */ }
    75%  { background-color: #F0F; /* purple     */ }
    100% { background-color: #00F; /* to: blue   */ }
}

@-webkit-keyframes colorchange {
    0%   { background-color: #00F; /* from: blue */ }
    25%  { background-color: #F00; /* red        */ }
    50%  { background-color: #0F0; /* green      */ }
    75%  { background-color: #F0F; /* purple     */ }
    100% { background-color: #00F; /* to: blue   */ }
}

对于0%这个也可以用from关键字来替代,同样的可以用to来代替100%,过渡状态,你可以定义任何百分比

animation应用到元素的属性写法,和transition差不太多

div:hover {
  animation-name: colorchange;
  animation-duration: 1s;
  animation-timing-function: linear;
  animation-delay: 1s;
  animation-fill-mode:forwards;  /*forwards表示让动画停留在结束状态*/
  animation-direction: normal;
  animation-iteration-count: 3;  /*用来指定动画循环的次数,无限循环用infinite*/
}


/****简写****/
div:hover {
  animation: 1s 1s rainbow linear 3 forwards normal;
}

animation-direction有四个值:

normal:默认,从0%执行到100%

reverse:动画从100%执行到0%

alternate:动画在0%到100%之间往复执行;

alternate-reverse与alternate一致,不过是从100%开始;

animation-play-state

有时,动画播放过程中,会突然停止。这时,默认行为是跳回到动画的开始状态;

如果想让动画保持突然终止时的状态可以使用animation-play-state: running;

浏览器支持

IE 10和Firefox(>= 16)支持没有前缀的animation,而chrome不支持,所以必须使用webkit前缀

也就是说,实际运用中,代码必须写成下面的样子:

div:hover {
  -webkit-animation: 1s rainbow;
  animation: 1s rainbow;  
}

@-webkit-keyframes rainbow {
  0% { background: #c00; }
  50% { background: orange; }
  100% { background: yellowgreen; }
}

@keyframes rainbow {
  0% { background: #c00; }
  50% { background: orange; }
  100% { background: yellowgreen; }
}

参考资料:

http://www.zhangxinxu.com/wordpress/2010/11/css3-transitions-transforms-animation-introduction/

http://www.w3cplus.com/content/css3-transform

http://beiyuu.com/css3-animation/

http://www.zhangxinxu.com/wordpress/2012/06/css3-transform-matrix-%E7%9F%A9%E9%98%B5/

http://www.ruanyifeng.com/blog/2014/02/css_transition_and_animation.html