animation几个比较好玩的属性(alternate,及animation-fill-mode)

<!DOCTYPE html>
<html>
<head>
<style> 
div
{
100px;
height:100px;
background:red;
position:relative;
animation:mymove 5s infinite;
-moz-animation:mymove 5s infinite; /* Firefox */
-webkit-animation:mymove 5s infinite; /* Safari and Chrome */
-o-animation:mymove 5s infinite; /* Opera */
animation-fill-mode: both;
}

@keyframes mymove
{
from {top:0px;}
to {top:200px;}
}

@-moz-keyframes mymove /* Firefox */
{
from {top:0px;}
to {top:200px;}
}

@-webkit-keyframes mymove /* Safari and Chrome */
{
from {top:0px;}
to {top:200px;}
}

@-o-keyframes mymove /* Opera */
{
from {top:0px;}
to {top:200px;}
}
</style>
</head>
<body>

<p><b>注释:</b>本例在 Internet Explorer 中无效。</p>

<div></div>

</body>
</html>  这是摘自w3school的一段关于keyframes的代码,大家有兴趣的可以看一下,
http://www.w3school.com.cn/tiy/t.asp?f=css3_keyframes
大家可以看到一个红色正方形,从上方运动到下面,再快速回到上面,再按animation:5s;从上面运动到下方,这样周而复始.那么在这个里面起关键的是keyframes,定义了动画,而animation:infinite 5s;则定义了动画效果,其中infinite代表的是循环,周而复始的这个过程。去掉这个,我们则看到红色正方形缓缓下来之后再快速回到上面后就不再动了。
那么我们想使正方形运动一次后留在下面,应该如何处理,这就是animation-fill-mode的作用,我今天在teambition网站上看到了他们的导航条的效果便是利用了这个,根据w3,animation-fill-mode有四个属性,none,forwards,backwards,both,其中none和forwards使得运动物体动画结束后回到动画前的状态,而both和forwards则使运动物体在动画结束后保留动画结束前最后一帧的效果,因此如 果我们希望正方形运动一次后停在下方,则需要使用animation-fill-mode这个属性。
而alternate则是达到往返效果,我们在实现摆钟动画时往往可能需要这个,我们不可能希望摆钟从左摆到右是一个我们确定的频率,从右摆到左又是一个急速的状态,没有保持一致。这样视觉上会大打折扣,大家可以在这个红色正方形上实验一下。譬如animation:mymove 5s infinite;变为 animation:mymove 5s infinite alternate;
来实际观察一下效果。
如有问题请及时告诉我。大家共同学习啦。

  

原文地址:https://www.cnblogs.com/qinglin/p/7783919.html