CSS3如何实现图片动态任意角度旋转

  要用javascritp控制图片的旋转是一件非常困难的事情,大段的代码,非常头痛。

 但是,有一种的好东西叫做CSS3。

  CSS3里面有个属性叫做transform,他有一个属性叫rotate(xdeg). 也出来就是transform: rotate(xdeg). 当然大家写的时候要写上兼容头.比如sar和chorm就该写-webkit-transform:rotate(xdeg); (x代表想要旋转的角度);

  这样当对象加上类如mouseover 或 click 事件时, 该对象会顺时针旋转x度;

 

  这样的效果视乎并不好,因为他是瞬间的,我们得要让他缓动的过渡起来!

  于是.... transition开始登场,这个属性就是过渡的意思, 我们可以写transition: all 0.3s ease-in-out 0.1s;(大家写的时候加兼容头) 解释一下这四个属性的意思吧: 第一个all 代表的是所有的属性要过渡(当状态发生改变的时候), 第二个属性代表从当前状态到目标状态所要耗费的时间, 第三个属性就是一个缓动函数, 也就是它该如何运动; 第四个参数代表的是延迟的时间.

 我通常会在代码中写道:

1 *{
2      -webkit-transition:all .3s ease-in-out .1s;    
3      -moz-transition:all .3s ease-in-out .1s;   
4      -o-transition:all .3s ease-in-out .1s;       
5 }

 

这两个属性transition跟transform在ie里基本是废了,貌似在9+在有用...珍爱生命,远离IE!!

 

接下来我把我写的demo给大家看看,我用的是Chorm,兼容头没写全,大家别学我...

css部分:

 1 <style>
 2 *{
 3     -webkit-transition: all .3s ease-in-out .1s;
 4     -moz-transition: all .3s ease-in-out .1s;
 5     -o-transition: all .3s ease-in-out .1s;
 6 }
 7 #demo{
 8     display: block;
 9     width: 100px;
10     height: 100px;
11     background-image: -webkit-linear-gradient(#333,#555);
12     background-image: -moz-linear-gradient(#333,#555);
13     background-image: -o-linear-gradient(#333,#555);
14     -webkit-border-radius: 50px;
15     -moz-border-radius: 50px;
16     -o-border-radius: 50px;
17     border-radius:50px;
18     font-size: 24px;
19     font-weight: 600;
20     line-height: 100px;
21     color :#FFF;
22     text-align: center;    
23 }
24 #demo:hover{
25     background-image: -webkit-linear-gradient(#444,#666);
26     background-image: -moz-linear-gradient(#444,#666);
27     background-image: -o-linear-gradient(#444,#666);
28     -webkit-transform: rotate(360deg);    
29     -moz-transform: rotate(360deg);
30     -o-transform: rotate(360deg);
31 }
32 </style>

 

HTML部分:

1 <body>
2 <a id="demo">
3 旋转
4 </a>

OK了,如果觉得这篇文章有意思,就赞一个吧。

posted @ 2013-06-23 11:08  不羁的风、  阅读(3109)  评论(0编辑  收藏  举报