首頁 >web前端 >js教程 >jQuery.animate() 函數使用實例詳解

jQuery.animate() 函數使用實例詳解

巴扎黑
巴扎黑原創
2017-06-30 11:19:381638瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn