欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

jQuery中animate的幾種用法與注意事項(xiàng)

 更新時(shí)間:2016年12月12日 11:51:00   作者:張君卓  
在今天之前,我對(duì)jQuery的中的animate()方法還停留在最常見的用法,查了一下手冊(cè),發(fā)現(xiàn)在1.8的時(shí)候增加了幾個(gè)比較有用的回調(diào)函數(shù),想著就來總結(jié)下jQuery中animate的幾種用法與注意事項(xiàng),方便自己或者大家有需要的時(shí)候參考借鑒,下面來一起看看吧。

一、animate語法結(jié)構(gòu)

animate(params,speed,callback)

params:一個(gè)包含樣式屬性及值的映射,比如{key1:value1,key2:value2}

speed:速度參數(shù)[可選]

callback:在動(dòng)畫完成時(shí)執(zhí)行的函數(shù)[可選]

二、自定義簡單動(dòng)畫

用一個(gè)簡單例子來說明,實(shí)現(xiàn)單擊某div在頁面上橫向飄動(dòng)的效果。

<style>
 #cube{
  position:relative;/* 不加這句元素不能動(dòng) */
  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>

為了使元素動(dòng)起來,要改變left屬性。為了能影響元素top、right、bottom、left屬性值必須聲明元素的position。


演示效果

三、累加、累減動(dòng)畫

在之前的代碼中,設(shè)置了{left:"100px"}這個(gè)屬性作為參數(shù),如果改寫為{left:"+=25px"} ,效果如下


演示效果

四、多重動(dòng)畫

同時(shí)執(zhí)行多個(gè)動(dòng)畫

上面的例子是一個(gè)很簡單的動(dòng)畫。如果想同時(shí)執(zhí)行多個(gè)動(dòng)畫,比如在元素向右滑動(dòng)的同時(shí),放大元素高度。

代碼如下:

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

演示效果

五、按順序執(zhí)行多個(gè)動(dòng)畫

上例中,向右滑動(dòng)與高度變大是同時(shí)發(fā)生的,如果想讓方塊先向右滑動(dòng)再變高,只需將代碼拆分

如下:

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

像這樣的動(dòng)畫效果的執(zhí)行有先后順序,稱為“動(dòng)畫隊(duì)列”


演示效果

六、綜合示例

單擊方塊,讓他向右移動(dòng)的同時(shí)增高,不透明度從50%增加到100%,之后上下移動(dòng),加寬,完成后淡出。

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

為同一元素應(yīng)用多重效果時(shí)可以通過鏈?zhǔn)椒绞綄?duì)這些效果進(jìn)行排隊(duì)。


演示效果

七、動(dòng)畫回調(diào)函數(shù)

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

$("#cube").click(function(){
    $(this).animate({left:"100px",height:"100px",opacity:"1"},500)
    .animate({top:"40px",width:"100px"},500)
    .css("border","5px solid blue")//改動(dòng)這行
   })

然而,css()方法被提前調(diào)用。


演示效果

引起這個(gè)問題的原因是,css()方法不會(huì)加入到動(dòng)畫隊(duì)列中,而是立即執(zhí)行。可以使用回調(diào)函數(shù)對(duì)非動(dòng)畫方法實(shí)現(xiàn)排隊(duì)。

正確的相關(guān)代碼如下:

   $("#cube").click(function(){
    $(this).animate({left:"100px",height:"100px",opacity:"1"},500)
    .animate({top:"40px",width:"100px"},500,function(){
     $(this).css("border","5px solid blue")
    })
   })

演示效果

值得注意的是,callback適用于jquery所有的動(dòng)畫方法,比如slidDown() ,show()等。

總結(jié)

以上就是關(guān)于jquery中animate的幾種用法和注意事項(xiàng),希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

最新評(píng)論