您的位置:首页 > 其它

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

2015-07-22 11:17 405 查看
<!DOCTYPE html>

<html>

<head>

<style>

div

{

width: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;

来实际观察一下效果。

如有问题请及时告诉我。大家共同学习啦。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: