返回值:jQuery animate(params,[speed],[easing],[fn])
概述
用於建立自定義動畫的函式。
這個函式的關鍵在於指定動畫形式及結果樣式屬性對象。這個對像中每個屬性都表示一個可以變化的樣式屬性(如「height」、「top」或「opacity」)。注意:所有指定的屬性必須用駱駝形式,比如用marginLeft代替margin-left.
而每個屬性的值表示這個樣式屬性到多少時動畫結束。如果是一個數值,樣式屬性就會從目前的值漸變到指定的值。如果使用的是「hide」、「show」或「toggle」這樣的字串值,則會為該屬性呼叫預設的動畫形式。
在 jQuery 1.2 中,你可以使用 em 和 % 單位。另外,在 jQuery 1.2 中,你可以通過在屬性值前面指定 "<em>+=</em>" 或 "<em>-=</em>" 來讓元素做相對運動。
jQuery 1.3中,如果duration設為0則直接完成動畫。而在以前版本中則會執行預設動畫。
jQuery 1.8中,當你使用CSS屬性在 css() 或 animate() 中,我們將根據瀏覽器自動加上字首(在適當的時候),比如("user-select", "none"); 在Chrome/Safari瀏覽器中我們將設定為"-webkit-user-select", Firefox會使用"-moz-user-select", IE10將使用"-ms-user-select".
參數
params,[speed],[easing],[fn] Options,Number/String,String,Function V1.0
params :一組包含作為動畫屬性和終值的樣式屬性和及其值的集合
speed :三種預定速度之一的字串("slow","normal", or "fast")或表示動畫時長的毫秒數值(如:1000)
easing :要使用的擦除效果的名稱(需要外掛支援).預設jQuery提供"linear" 和 "swing".
fn :在動畫完成時執行的函式,每個元素執行一次。
params,options String,String V1.0
params ::一組包含作為動畫屬性和終值的樣式屬性和及其值的集合
options :動畫的額外選項。如:speed - 設定動畫的速度,easing - 規定要使用的 easing 函式,callback - 規定動畫完成之後要執行的函式,step - 規定動畫的每一步完成之後要執行的函式,queue - 布爾值。指示是否在效果佇列中放置動畫。如果為 false,則動畫將立即開始,specialEasing - 來自 styles 參數的一個或多個 CSS 屬性的對映,以及它們的對應 easing 函式
示例
描述:
點選按鈕后div元素的幾個不同屬性一同變化
HTML 程式碼:
<button id="go"> Run</button>
<div id="block">Hello!</div>
jQuery 程式碼:
// 在一個動畫中同時應用三種類型的效果
$("#go").click(function(){
$("#block").animate({
width: "90%",
height: "100%",
fontSize: "10em",
borderWidth: 10
}, 1000 );
});
描述:
讓指定元素左右移動
HTML 程式碼:
<button id="left">«</button> <button id="right">»</button>
<div class="block"></div>
jQuery 程式碼:
$("#right").click(function(){
$(".block").animate({left: '+50px'}, "slow");
});
$("#left").click(function(){
$(".block").animate({left: '-50px'}, "slow");
});
描述:
在600毫秒內切換段落的高度和透明度
jQuery 程式碼:
$("p").animate({
height: 'toggle', opacity: 'toggle'
}, "slow");
描述:
用500毫秒將段落移到left為50的地方並且完全清晰顯示出來(透明度為1)
jQuery 程式碼:
$("p").animate({
left: 50, opacity: 'show'
}, 500);
描述:
一個使用「easein」函式提供不同動畫樣式的例子。只有使用了外掛來提供這個「easein」函式,這個參數才起作用。
jQuery 程式碼:
$("p").animate({
opacity: 'show'
}, "slow", "easein");