一、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()等。
總結
以上就是關於jquery中animate的幾種用法和注意事項,希望本文的內容對大家的學習或工作能帶來一定的幫助,如果有疑問大家可以留言交流。謝謝大家對PHP中文網的支持。 更多jQuery中animate的幾種用法與注意事項相關文章請關注PHP中文網!