日期:2014-05-17  浏览次数:20733 次

CSS3旋转和动画例子
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秒,过渡动画类型为先慢后快。