jQuery中animate的幾種用法與注意事項
一、animate語法結構
animate(params,speed,callback)
params:一個包含樣式屬性及值的映射,例如{key1:value1,key2:value2}
speed:速度參數[可選]
callback:在動畫完成時執行的函數[可選]
二、自訂簡單動畫
用一個簡單例子來說明,實現點擊某div在頁面上橫向飄動的效果。
<style> #cube{ position:relative;/* 不加这句元素不能动 */ width:30px; height:30px; background:red; cursor:pointer; } </style> <body> <div> <div id="cube"></div> </div> <script> $(function(){ $("#cube").click(function(){ $(this).animate({left:"100px"},2000) }) }) </script>
為了使元素動起來,要改變left屬性。為了能影響元素top、right、bottom、left屬性值必須宣告元素的position。
三、累加、累減動畫
在先前的程式碼中,設定了{left:"100px"}這個屬性作為參數,如果改寫為{left:"+=25px"} ,效果如下
四、多重動畫
同時執行多個動畫
上面的範例是一個很簡單的動畫。如果想同時執行多個動畫,例如在元素向右滑動的同時,放大元素高度。
代碼如下:
$(this).animate({left:"+=25px",height:"+=20px"},1000)
五、按順序執行多個動畫
上例中,向右滑動與高度滑動與高度滑動是同時滑動再變高,只要將程式碼分割
如下:
$(this).animate({left:"+=25px"},500) .animate({height:"+=20px"},500)
像這樣的動畫效果的執行有先後順序,稱為「動畫佇列」
點擊方塊,讓他向右移動的同時增高,不透明度從50%增加到100%,之後上下移動,加寬,完成後淡出。
$("#cube").click(function(){ $(this).animate({left:"100px",height:"100px",opacity:"1"},500) .animate({top:"40px",width:"100px"},500) .fadeOut('slow') })
七、動畫回調函數
在上例中,如果想在最後一步切換css樣式(background:blue),而不是淡出,如果按照通常處理,相關程式碼如下:
rrrefreee
造成這個問題的原因是,css()方法不會加入到動畫佇列中,而是立即執行。可以使用回呼函數對非動畫方法實作排隊。
正確的相關程式碼如下:
$("#cube").click(function(){ $(this).animate({left:"100px",height:"100px",opacity:"1"},500) .animate({top:"40px",width:"100px"},500) .css("border","5px solid blue")//改动这行 })
值得注意的是,callback適用於jquery所有的動畫方法,如slidDown( ,show()等。
總結

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)