animate()函數用來執行一個基於css屬性的自訂動畫。
你可以為符合的元素設定css樣式,animate()函數將會執行一個從目前樣式到指定的css樣式的一個過渡動畫。
例如:某個div元素的目前高度為100px,將其CSS height屬性設為200px,animate()將會執行一個將div元素的高度從100px逐漸增加到200px的過渡動畫。
此函數屬於jQuery物件(實例)。
語法
jQuery 1.0 新增此函數。 animate()函數主要有以下兩種形式的用法:
用法一:
jQueryObject.animate( cssProperties [, duration ] [, easing ] [, complete ] )
用法二:
jQueryObject.animate( cssProperties, options )
用法二是用法一的變體。以物件形式指定所需的選項參數(可指定比用法一更多的選項參數)。
參數
參數 說明
cssProperties Object類別型一個或多個css屬性的鍵值對所構成的Object物件。
duration 可選/String/Number類型指定動畫運行多久(毫秒數),預設值為400。此參數也可以為字串"fast"(=200)或"slow"(=600)。
easing 可選/String類型指定使用何種動畫效果,預設為"swing",也可以設為 "linear"或其他自訂的動畫樣式函數。
complete 可選/Function類型元素顯示完成後需要執行的函數。函數內的this指向當前DOM元素。
options Object類型指定的選項參數物件。
參數options物件可以辨識如下的屬性(以下屬性皆是可選的):
屬性 屬性描述
duration 參考參數duration。
easing 參見參數easing。
complete 請參閱參數complete。
queue Boolean類型指示是否將動畫放入效果佇列中,預設為true。從1.7版本開始,此參數可以為字串,用於放入指定名稱的效果佇列。如果你指定的佇列不會自動開始,你需要手動呼叫dequeue("queueName")來啟動佇列。
此外,jQuery 1.4 和 1.8 也為參數options新增了許多新的選項支持,但這些參數並不常用,此處不再贅述,詳見jQuery官方文件。
傳回值
animate()函數的傳回值為jQuery類型,傳回目前jQuery物件本身。
範例&說明
除了以下提到的值外,所有動畫css屬性都應該可以變更為一個單一的數值。使用基本的jQuery功能,大多數非數值的css屬性都無法用來執行動畫。例如:width、height、left、top都可用於動畫,但color、background-color無法用於動畫(除非使用jQuery.Color()插件)。除非你為屬性值指定了單位(例如:px、em、%),否則預設的數值單位為像素(px)。
速寫的css屬性可能無法獲得完整全面的支持,例如:border、margin等,因此不建議使用。
你也可以將css屬性值設為一些特定的字串,例如:"show"、"hide"、"toggle",則jQuery會呼叫該屬性預設的動畫形式。
此外,css屬性值也可以是相對的,你可以為屬性值加上前綴"+="或"-=",以便於在原來的屬性值上增加或減少指定的數值。例如:{ "height": "+=100px" },表示在原有高度的基礎上增加100px。
請參考下面這段初始HTML程式碼:
a8dd71fc29d112c025bfe5e53c348f7b CodePlayer16b28748ea4df4d9c2150843fecfba68
動畫效果:
<select id="animation"> <option value="1">动画1</option> <option value="2">动画2</option> <option value="3">动画3</option> <option value="4">动画4</option> <option value="5">动画5</option> </select> <input id="exec" type="button" value="执行动画" >
以下是與animate()函數相關的jQuery範例程式碼,以示範animate()函數的具體用法:
$("#exec").click( function(){ var v = $("#animation").val(); var $myDiv = $("#myDiv"); if(v == "1"){ // 数值的单位默认是px $myDiv.animate( { height: 200 } ); }else if(v == "2"){ // 在现有高度的基础上增加300px (如果原来是100px,增加后就是400px) // 多个动画连续执行 $myDiv.animate( { height: "+=300px" }, "slow" ); $myDiv.animate( { width: "50%" }, 1000 ); $myDiv.animate( { width: "200px", height: "100px" }, 1000 ); }else if(v == "3"){ // font-size或fontSize均可,由多个单词构成的属性均是如此 $myDiv.animate( { fontSize: "30px" }, 2000 ); $myDiv.animate( { fontSize: "14px" }, 2000, function(){ alert("动画3执行完毕!"); }); }else if(v == "4"){ $myDiv.animate( { width: "50%", height: "50%" }, { duration: 2000, easing: "linear" }); }else if(v == "5"){ // 根据高度切换显示/隐藏,显示时高度从0增加到原高度,隐藏时高度从原高度减小到0 $myDiv.animate( { height: "toggle" }); } } );
以上是jQuery.animate() 函數使用實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!