網上發現一個很有意思的jQuery旋轉插件,支持Internet Explorer 6.0+ 、Firefox 2.0 、Safari 3 、Opera 9 、Google Chrome,高級浏覽器下使用Transform,低版本ie使用VML實現。
調用和方法:
rotate(angle)
angle參數:[Number] – 默認為 0 – 根據給定的角度旋轉圖片
例如:
. 代碼如下:
$("#img").rotate(45);
rotate(parameters)
parameters參數:[Object] 包含旋轉參數的對象。支持的屬性:
1.angle屬性:[Number] – default 0 – 旋轉的角度數,並且立即執行
例如:
. 代碼如下:
$("#img").rotate({angle:45});
2.bind屬性:[Object] 對象,包含綁定到一個旋轉對象的事件。事件內部的$(this)指向旋轉對象-這樣你可以在內部鏈式調用- $(this).rotate(…)。例如 (click on arrow):
. 代碼如下:
$("#img").rotate({bind:{
click: function(){
$(this).rotate({
angle: 0,
animateTo:180
})
}
}
});
3.animateTo屬性:[Number] – default 0 – 從當前角度值動畫旋轉到給定的角度值 (或給定的角度參數)例如: 結合上面的例子,請參閱使用。
4.duration屬性:[Number] – 指定使用animateTo的動畫執行持續時間例如 (click on arrow):
. 代碼如下:
$("#img").rotate({bind:{
click: function(){
$(this).rotate({
duration:6000,
angle: 0,
animateTo:100
})
}
}
});
5.step屬性:[Function] – 每個動畫步驟中執行的回調函數,當前角度值作為該函數的第一個參數
6.easing屬性:[Function] – 默認 (see below) – Easing function used to make animation look more natural. It takes five parameters (x,t,b,c,d) to support easing from http://gsgd.co.uk/sandbox/jquery/easing/ (for more details please see documentation at their website). Remember to include easing plugin before using it in jQueryRotate!Default function:
. 代碼如下:
function (x, t, b, c, d) { return -c * ((t=t/d-1)*t*t*t - 1) + b; }
Where:t: current time,
b: begInnIng value,
c: change In value,
d: duration,
x: unused
No easing (linear easing):
. 代碼如下:
function(x, t, b, c, d) { return (t/d)*c ; }
Example (click on arrow):
. 代碼如下:
$("#img").rotate({bind:{
click: function(){
$(this).rotate({
angle: 0,
animateTo:180,
easing: $.easing.easeInOutElastic
})
}
}
});
7.callback屬性:[Function] 動畫完成時執行的回調函數例如 (click on arrow):
. 代碼如下:
$("#img").rotate({bind:{
click: function(){
$(this).rotate({
angle: 0,
animateTo:180,
callback: function(){ alert(1) }
})
}
}
});
getRotateAngle
這個函數只是簡單地返回旋轉對象當前的角度。
例如:
. 代碼如下:
$("#img").rotate({
angle: 45,
bind: {
click : function(){
alert($(this).getRotateAngle());
}
}
});
stopRotate
這個函數只是簡單地停止正在進行的旋轉動畫。
例如:
. 代碼如下:
$("#img").rotate({
bind: {
click: function(){
$("#img").rotate({
angle: 0,
animateTo: 180,
duration: 6000
});
setTimeout(function(){
$("#img").stopRotate();
}, 1000);
}
}
});
用這個可以實現很多關於旋轉的網頁特效,我用這個做了個抽獎大轉盤,效果不錯,就是沒flash順暢,基本能跑哈哈。
jqueryrotate項目地址:http://code.google.com/p/jqueryrotate/
代碼示例:http://code.google.com/p/jqueryrotate/wiki/Examples
一步一步往上爬