CSS3的出现 让我们通过css样式也能写出炫酷的特效
通过 Animation 这个属性 无需插件和jquery也可以轻松的完成简单的动画效果
DEMO:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
div{
width: 200px;
height: 200px;
background: #008aff;
position: absolute;
-webkit-animation:aname 10s;
-o-animation:aname 10s;
animation:aname 10s;
}
@keyframes aname {
0%{top:0px;left: 0px;}
30%{top:0px;left: 500px;}
60%{top:500px;left: 0px;}
100%{top:0px;left: 0px;}
}
</style>
</head>
<body>
<div></div>
</body>
</html>
这段代码演示的是一个蓝色的正方形div在10秒内移动的过程
首先 我们用animation这个属性 声明了一个名称 aname 在这个名称的后面10s是指定这个动画的运行时长为10秒
为什么要写三个animation属性 这三个animation代表着为css3的不同浏览器进行兼容
前缀 -o- 代表着 opera 内核的浏览器
前缀 -webkit- 代表着拥有webkit内核的浏览器 如 Chrome 搜狗浏览器 猎豹浏览器
@keyframes aname(动画名) 这个样式是执行动画用的 它是写在div外面的
@keyframes 内部的 0%{} 是规定动画在运行时长的百分比状态
也就是0%的时候我规定了它的坐标top和left都是0px
当然 还有其他的动画属性
播放的次数 animation-iteration-count
可以写数字也可以写infinite代表无限次
动画的播放曲线 animation-timing-function
默认值 linear 无变化
ease 开始快 结束慢
ease-in 动画以低速开始
ease-out 动画以低速结束
ease-in-out 动画以低速开始和结束
cubic-bezier(参数,参数,参数,参数) 写自己的参数 0到1规定速度
如果不是时间很长的动画 以上并不会有太大的不同
是否逆行播放 animation-direction 默认值 normal 逆行 alternate
是否暂停动画 animation-play-state 默认值 running 暂停 paused
动画何时开启 animation-delay 数字加s
当然以上的所有属性可以简写成这样
animation: aname 5s linear 2s infinite alternate;