首頁  >  文章  >  web前端  >  jQuery中animate的幾種用法與注意事項

jQuery中animate的幾種用法與注意事項

高洛峰
高洛峰原創
2016-12-28 09:31:441322瀏覽

一、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。

jQuery中animate的幾種用法與注意事項

三、累加、累減動畫

在先前的程式碼中,設定了{left:"100px"}這個屬性作為參數,如果改寫為{left:"+=25px"} ,效果如下

jQuery中animate的幾種用法與注意事項

四、多重動畫

同時執行多個動畫

上面的範例是一個很簡單的動畫。如果想同時執行多個動畫,例如在元素向右滑動的同時,放大元素高度。

代碼如下:

$(this).animate({left:"+=25px",height:"+=20px"},1000)

   

jQuery中animate的幾種用法與注意事項

五、按順序執行多個動畫

上例中,向右滑動與高度滑動與高度滑動是同時滑動再變高,只要將程式碼分割

如下:

$(this).animate({left:"+=25px"},500)
  .animate({height:"+=20px"},500)

   

像這樣的動畫效果的執行有先後順序,稱為「動畫佇列」

jQuery中animate的幾種用法與注意事項

點擊方塊,讓他向右移動的同時增高,不透明度從50%增加到100%,之後上下移動,加寬,完成後淡出。

$("#cube").click(function(){
    $(this).animate({left:"100px",height:"100px",opacity:"1"},500)
    .animate({top:"40px",width:"100px"},500)
    .fadeOut(&#39;slow&#39;)
   })

   

為相同元素應用多重效果時可以透過鍊式方式對這些效果進行排隊。

七、動畫回調函數jQuery中animate的幾種用法與注意事項

在上例中,如果想在最後一步切換css樣式(background:blue),而不是淡出,如果按照通常處理,相關程式碼如下:
rrrefreee

然而,css()方法被事先呼叫。

造成這個問題的原因是,css()方法不會加入到動畫佇列中,而是立即執行。可以使用回呼函數對非動畫方法實作排隊。

正確的相關程式碼如下:jQuery中animate的幾種用法與注意事項

$("#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的幾種用法與注意事項

以上就是關於jquery中animate的幾種用法和注意事項,希望本文的內容對大家的學習或工作能帶來一定的幫助,如果有疑問大家可以留言交流。謝謝大家對PHP中文網的支持。

更多jQuery中animate的幾種用法與注意事項相關文章請關注PHP中文網!

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