1. CSS3旋转的例子:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <html> <head> <title>验证码</title> <style type="text/css"> .animation-form{ /* -webkit-animation: animate-stripes 1s linear infinite; */ -webkit-transition:all 0.5s ease-in; -webkit-transform:rotate(0deg); } .animation-form:hover{ -webkit-transform:rotate(30deg); } </style> </head> <body> <div class="animation-form" style="background-color:red;width:100px;height:100px;"> </div> </body> </html>
2. CSS3动画:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <html> <head> <title>验证码</title> <style type="text/css"> .animation-form{ -webkit-animation: animate-stripes 1s linear infinite; } @-webkit-keyframes animate-stripes { 0% {-webkit-transform: rotate(0deng);left:0;} 100% {-webkit-transform: rotate(180deng);left:50px} } </style> </head> <body> <div class="animation-form" style="background-color:red;width:100px;height:100px;position: absolute;"> </div> </body> </html>
代码部分最关键的就是:-webkit-transition:all 0.5s ease-in;目前而言,transition仅webkit核心的浏览器支持,所以此效果仅在chrome或是Safari下有。
transiton属性有这几个值:
transition-property :* //指定过渡的性质,比如transition-property:backgrond 就是只指定backgound参与这个过渡
transition-duration:*//指定这个过渡的持续时间
transition-delay:* //延迟过渡时间
transition-timing-function:*//指定过渡类型,有ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier
熟悉flash显示与动画编程的应该知道,这里的过渡类型的含义与flash中缓动类型(远不及flash丰富)是一致的:
linear //线性过度
ease-in //由慢到快
ease-out //由快到慢
ease-in-out //由慢到快在到慢
额外的些知识:timing-funciton的几种过度类型都是基于cubic-bezier的某些特定数值。比如ease-in-out的类型它也可以写成cubic-bezier(0.42, 0, 0.58, 1.0)。参见这里。
transition还支持CSS伪类。
所以,-webkit-transition:all 0.5s ease-in表示的意思就是所有的属性都执行过渡效果,像角度啊,投影大小,边框色或是下面要讲到的比例啦等,执行时间为0.5秒,过渡动画类型为先慢后快。