DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> jQuery入門知識 >> JQuery入門技巧 >> 詳解jQuery中基本的動畫方法
詳解jQuery中基本的動畫方法
編輯:JQuery入門技巧     

大致介紹

通過jQuery中基本的動畫方法,能夠輕松地為網頁添加非常精彩的視覺效果,給用戶一種全新的體驗

jQuery中的動畫

show()和hide()方法

1、show()方法和hide()方法是jQuery中最基本的方法,hide()方法會將一個元素的display設置為"none";

2、show()方法和hide()方法會同時改變元素的寬度、高度和透明度

3、在一個元素使用hide()方法時會記錄原先的display屬性,當調用show()方法的時候會根據hide()方法記住的display屬性值來顯示該元素

4、show()方法和hide()方法都能接受一個參數,表示運動的快慢

$('.div1').toggle(function(){
$('.div2').hide(600);
 },function(){
  $('.div2').show(600);
 });

fadeIn()方法和fadeOut()方法

1、fadeOut()方法在指定的一段時間內只降低元素的不透明度,而fadeIn()方法則相反

2、接受一個參數

 $('.div1').toggle(function(){
  $('.div2').fadeIn(600);
 },function(){
  $('.div2').fadeOut(600);
 });

slideUp()方法和slideDown()方法

 1、slideUp()方法和slideDown()方法只會改變元素的高度。如果一個元素的display屬性值為"none",當調用slideDown()方法時,這個元素將由上至下延伸,slideUp()方法相反

 2、接受一個參數

 $('.div1').toggle(function(){
  $(this).next().slideUp();
 },function(){
  $(this).next().slideDown();
 });

自定義動畫方法animate()

 語法:animate(params,speed,callback);

 (1)params:一個包含樣式屬性及值得映射

 (2)speed:速度參數,可選

 (3)callback:在動畫完成時執行的函數,可選

1、基本用法

 $('.div1').click(function(){
  $('.div2').animate({width:'+=50px',height:'300px'},600);
 });

2、多重動畫

如果要采用鏈式運動可以采用鏈式寫法

 $('.div1').click(function(){
 $('.div2').animate({width:'350px'},600)
  .animate({height:'300px'},600);
 });

注意:如果采用鏈式寫法時用了css()方法,css()方法不會添加到運動隊列中,會直接執行而不等待前面的動畫

 $('.div1').click(function(){
  $('.div2').animate({width:'350px'},600)
   .animate({height:'300px'},600)
   .css('border','10px solid black');
 });

這個元素的邊框會在一開始就添加到了元素上,要解決這個問題的辦法就是使用回調函數

如果要同時運動可將要運動的值寫在一起

 $('.div1').click(function(){
 $('.div2').animate({width:'350px',height:'300px'},600);
 });

回調函數

回調函數適用與jQuery所有的動畫效果方法

例如要解決鏈式寫法css()屬性會直接執行的問題可以采用回調函數的方法

 $('.div1').click(function(){
 $('.div2').animate({width:'350px'},600)
   .animate({height:'300px'},600,function(){
   $('.div2').css('border','10px solid black');
  });
 });

停止動畫和判斷是否處於動畫狀態

1、停止元素的動畫

stop()方法接受兩個參數

第一個參數為true或者false,表示是否要清空為執行完的動畫隊列,例如我們寫鏈式動畫時,如果第一個參數為true,當我們阻止了正在進行的一個動畫操作後,後面的動畫操作都會被清空,如果參數為false時,就只會阻止當前的這個動畫,動畫隊列後的動畫依舊執行

第二個參數為true或者false,表示是否要將正在執行的動畫跳轉到末狀態

2、判斷元素是否處於動畫狀態

如果用戶頻繁的執行一個animate()動畫時,就會出現動畫積累,解決方法就是判斷元素是否正處於動畫狀態,如果元素不處於動畫狀態,才為元素添加新的動畫

if(!$('div1').is(':animated')){
 // 添加動畫
 }

3、延遲動畫

如果要延遲執行一個動畫,就可以使用delay()方法

 $('.div1').click(function(){
  $('.div2').animate({width:'350px'},600)
   .delay(1000)
   .animate({height:'300px'},600,function(){
    $('.div2').css('border','10px solid black');
   });
 });

其他動畫方法

1、slideToggle()方法

通過高度的變化來切換匹配的元素的可見性

$('.div1').click(function(){
 $('.div2').slideToggle();
});

2、fadeTo()方法

可以把元素的不透明度以漸進的方式調整到指定的值,這個動畫只調整元素的不透明度

 $('.div1').click(function(){
 $('.div2').fadeTo(600,0.5);
 });

3、fadeToggle()方法

通過不透明度來切換匹配元素的可見性

 $('.div1').click(function(){
 $('.div2').fadeTo(600,0.5);
 });

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持!

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved