今天突然看到阿里云官网的一个悬浮效果挺炫的,就想知道到底是怎么做的,研究了半天,加了一个技术群,原来是css3做的,然后做了一个小 Demo记录下来:
<!DOCTYPE html>
<html>
<head>
<meta charset="{CHARSET}">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title></title>
<style>
.run{width: 100px; height:100px;position:absolute;left:0;top:10px; background: url(images/run.jpg) no-repeat;}
.run{
animation:runAnimation 300ms steps(5) infinite;
-webkit-animation:runAnimation 300ms steps(5) infinite;
-o-animation:runAnimation 300ms steps(5) infinite;
-moz-animation:runAnimation 300ms steps(5) infinite;
}
@-webkit-keyframes runAnimation{
from{background-position: 0px 0px;}
to{background-position: -500px 0px;}
}
@-moz-keyframes runAnimation{
from{background-position: 0px 0px;}
to{background-position: -500px 0px;}
}
@-o-keyframes runAnimation{
from{background-position: 0px 0px;}
to{background-position: -500px 0px;}
}
</style>
</head>
<body>
<div class="run"></div> </body>
</html>
效果就是图片中的小牛一直奔跑
1.首先,引入图片,图片是状态是帧图片(就是一帧对应一个动作),然后定位。
2.用css3的animation语法:
animation: name duration timing-function delay iteration-count direction; name:需要绑定到选择器的 keyframe 名称
duration :完成动画所花费的时间,以秒或毫秒计。
timing-function:动画的速度曲线。
delay :规定在动画开始之前的延迟。
iteration-count:规定动画应该播放的次数。
direction:规定是否应该轮流反向播放动画。
3.通过 @keyframes 规则,创建动画:
创建动画的原理是,将一套 CSS 样式逐渐变化为另一套样式。
在动画过程中,能够多次改变这套 CSS 样式。
以百分比来规定改变发生的时间,或者通过关键词 "from" 和 "to",等价于 0% 和 100%。
0% (from)是动画的开始时间,100%(to) 动画的结束时间。
tips:请使用动画属性来控制动画的外观,同时将动画与选择器绑定。
看起来很炫的效果,通过css3来写就很简单了。