jQuery 動畫篇

1、動畫基礎隱藏和顯示(show與hide方法是修改的display屬性,通過是visibility屬性佈局需要通過css方法單獨設置

(1)隱藏元素的hide方法

快捷參數:

.hide("fast / slow") 'fast' 和 'slow' 分別代表200和600毫秒的延時,就是元素會執行200/600毫秒的動畫後再隱藏

方法一
 
方法二

(2)顯示元素的hide方法

hide-show

(3)顯示與隱藏切換toggle方法

//.left  .right 爲兩個div塊

2、上卷下拉效果

(1)下拉動畫slideDown  (      slideDown(fast)       slideDown(slow)           )

基本操作:$("ele").slideDown()

執行回調:$("ele").slideDown(1000, function() { //等待動畫執行1秒後,執行別的動作.... });

(2)上捲動畫slideUp(用法同slideDown一樣)

(3)上卷下拉切換slideToggle


3、淡入淡出效果(淡入淡出fadeIn與fadeOut都是修改元素樣式的opacity屬性變化的區間要麼是0,要麼是1

(1)淡出動畫fadeOut(fadeOut()函數用於隱藏所有匹配的元素,並帶有淡出的過渡動畫效果)

  • .fadeOut("slow / fast");   /  .fadeOut(1000);   / .fadeOut(1000,"linear"); 這裏的linear是指動畫的行進速度方法(easing),顧名思義就是淡出的速度保持恆定的線性速度。而jQuery 核心默認的easing爲swing,行進速度在動畫開始和結束時比在動畫中間時稍慢。)

  • .fadeOut(2000, function () { });

  • .fadeOut( { duration: 1000 });

(2)淡入動畫fadeIn(fadeIn()函數用於顯示所有匹配的元素,並帶有淡入的過渡動畫效果

(用法與fadeOut一致)

(3)淡入淡出切換fadeToggle(fadeToggle()函數用於切換所有匹配的元素,並帶有淡入/淡出的過渡動畫效果)

(4)淡入效果fadeTo(讓元素保持動畫效果,執行opacity  不爲0或1時的效果)

fadeTo

測試文字透明度效果

測試測試

透明度的設置效果:

4、動畫切換的比較

toggle與slideToggle和fadeToggle的比較

(1)toggle、sildeToggle以及fadeToggle的區別:
  • toggle:切換顯示與隱藏效果

  • sildeToggle:切換上下拉卷滾效果

  • fadeToggle:切換淡入淡出效果

(2)操作元素的顯示和隱藏可以有幾種方法。例如:

  • 改變樣式display爲none

  • 設置位置高度爲0

  • 設置透明度爲0

(3)toggle與slideToggle細節區別:

  • toggle:動態效果爲從右至左。橫向動作,toggle通過display來判斷切換所有匹配元素的可見性

  • slideToggle:動態效果從下至上。豎向動作,slideToggle 通過高度變化來切換所有匹配元素的可見性

5、自定義動畫

(1)動畫animate

a、所有用於動畫的屬性必須是數字的,除非另有說明;

b、注意屬性值的單位

.animate({
    left: 50, 
    width: '50px'   
    opacity: 'show',  
    fontSize: "10em",
}, 500);

c、每個屬性能使用'show', 'hide', 和 'toggle'

//通過toggle參數切換高度
.animate({
    width: "toggle"
});

d、提供一個以 += 或 -= 開始的值

//在現有高度上增加50px
.animate({ 
    height: '+=50px'
}, "slow");

e、CSS 樣式使用 DOM 名稱(比如 "fontSize")來設置,而非 CSS 名稱(比如 "font-size")。

f、options參數
  • duration - 設置動畫執行的時間

  • easing - 規定要使用的 easing 函數,過渡使用哪種緩動函數

  • step:規定每個動畫的每一步完成之後要執行的函數

  • progress:每一次動畫調用的時候會執行這個回調,就是一個進度的概念

  • complete:動畫完成回調

$('#elem').animate({
    width: 'toggle',  
    height: 'toggle'
  }, {
    duration: 5000,
    specialEasing: {
        width: 'linear',
        height: 'easeOutBounce'
    },
    complete: function() {
        $(this).after('
Animation complete.
'); } });

(2)停止動畫stop

a、stop的幾個函數

  • .stop();  停止當前動畫,點擊在暫停處繼續開始

  • .stop(true); 如果同一元素調用多個動畫方法,當調用.stop()的時候,隊列中的下一個動畫立即開始。

  • .stop(true,true); 當前動畫將停止,但該元素上的 CSS 屬性會被立刻修改成動畫的目標值

$("#aaron").animate({
    height: 300
}, 5000)
$("#aaron").animate({
    width: 300
}, 5000)
$("#aaron").animate({
    opacity: 0.6
}, 2000)

6、jQuery核心

(1)each方法的應用

  • 來處理對象和數組的遍歷(回調函數中傳入的兩個參數,如果遍歷的是數組,第一個參數是索引值,第二個參數是數組的值;如果遍歷是對象,第一個參數是屬性,第二個參數是屬性值。)

  • jQuery.each ( array, callback )            (jQuery.each == $.each

  • jQuery.each ( object, callback )

(2)查找數組中的索引inArray(用於在數組中搜索指定的值,並返回其索引值。如果數組中不存在該值,則返回 -1。)

  • jQuery.inArray ( value, array , [ fromIndex ] )

  • 如果要判斷數組中是否存在指定值,你需要通過該函數的返回值不等於(或大於)-1 來判斷

(3)去空格神器trim方法(jQuery.trim()函數用於去除字符串兩端的空白字符)

(4)DOM元素的get方法

  • get方法是獲取的dom對象,也就是通過document.getElementById獲取的對象

  • get方法是從0開始索引(所以第二個a元素的查找: $(a).get(1)

  • get方法還可以從後往前索引,傳遞一個負索引值,注意的負值的索引起始值是-1

(5)DOM元素的index方法

  • 如果不傳遞任何參數給 .index() 方法,則返回值就是jQuery對象中第一個元素相對於它同輩元素的位置

  • 通過傳遞dom查找      $(" li ").index(document.getElementById(" test5 ")

  • 通過傳遞jQuery對象查找  $(" li ").index($(" #test5 "))

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章