jQuery和DOM

亦世發表於2018-09-25

$(document).ready和window.onload的區別

jQuery事件繫結

bind(type, [data], fn)   //type 事件型別  [,data]:傳遞給處理函式進行處理的額外資料 fn:用來繫結的處理函式

$("div").bind("click",function(){});   // 繫結一個事件

$("div").bind("mouseover mouseout",function(){}); //同時繫結多個事件

合成事件:hover()和toggle()

hover()方法

hover(enter,leave); //用於模擬游標懸停事件,當滑鼠移到元素上的時候會觸發enter函式,當滑鼠離開元素的時候會觸發leave函式。

toggle()方法

toggle([fn1],[fn2],[fn3])

//1,用於繫結兩個或多個事件處理器函式,以響應被選元素的輪流的click事件。

//2,toggle()方法另一個功能是顯示的時候隱藏,隱藏的時候顯示。

事件物件

在jQuery中使用事件物件,只需為函式新增一個引數。

$("element").bind("click", function(event){  //event:事件物件

      //函式處理語句

}) 

停止事件冒泡

使用event.stopPropagation()方法來停止事件冒泡。

組織預設行為

使用event.preventDefault()方法來阻止元素的預設行為。

同時對事件物件停止冒泡和預設行為

使用return false這種簡單方式就可以,不用以上兩句。

常用的事件物件屬性

event.type 用於獲取事件型別,比如click

event.target  觸發的元素

event.pageX 獲取到游標相對於頁面的x座標

event.pageY獲取到游標相對於頁面的y座標

event.which 獲取滑鼠的左中右鍵,分別為1,2,3.

event.metaKey:鍵盤事件中獲取<ctrl>按鍵。

移除事件

語法:unbind([type],[data]);//1,如果沒有引數,則刪除所有的繫結事件

  2.如果提供了事件型別作為引數,則只刪除該型別的繫結事件

  3.如果把在繫結時傳遞的處理函式作為第二個引數,則只有這個特定的時間處理函式被刪除。

模擬操作

在jQuery中,可以使用trigger()方法完成模擬操作。例如:

$("#btn").trigger("click");  //模擬點選事件

觸發自定義事件

$("#btn").bind("myclick",function(){//函式體});

$("#btn").trigger("myclick");

傳遞資料

$("#btn").bind("myclick").function(event,msg1,msg2){

      $("#test").append("<p>"+msg1+msg2+"</p>);

});

$("#btn").triger("myclick",["我的自定義","事件"]);

jQuery實現動畫與特效

jQuery庫提供了豐富的動畫效果,通過使用可以給網頁新增非常精彩的視覺效果,給使用者一種全新的體驗。

1,show([speed,[easing],[fn]]),hide([speed,[easing],[fn]])

元素的顯示和隱藏,同時修改多個樣式屬性即寬度、高度和不透明度。

2,toggle([speed],[easing],[fn])用來替代show()和hide()方法

3,slideDown([speed],[easing],[fn]),slideUp([speed],[easing],[fn])

元素從上至下和從下至上顯示,只改變高度。

4,slideToggle([speed],[easing],[fn])用來替代slideDown()和slideUp()

5,fadeIn([speed],[easing],[fn])和fadeOut([speed],[easing],[fn])

元素淡入和淡出顯示,只改變不透明度

6,fadeTo([speed],[easing],[fn])元素淡入指定不透明度的效果,只改變不透明度

7,fadeToggle([speed],[easing],[fn])用來代替fadeIn()和fadeOut()

自定義動畫方法animate()

很多情況下,上面提供的動畫方法無法滿足使用者的各種需求,那麼就要對動畫有更多的控制,可以使用animate()方法來自定義動畫。

語法:animate(params,speed,callback)

1.params:一個包含樣式屬性及值的對映,比如{property1:"value",...}

2.speed:速度引數,可選

3.callback:動畫完成時執行的函式,可選

示例:

$("#mydiv").click(function(){

      $(this).animate({left:"500px"},3000)

                 .animate({height:"200px"},3000);

}); //此動畫是多重動畫,動畫按順序進行。先右移動再高度放大。

停止動畫

語法:stop([clearQueue],[goToEnd])

1.clearQueue:如果設定成true,則清空未執行完的動畫佇列。可以立即結束動畫。

2.gotoEnd:讓當前正在執行的動畫立即完成

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

if(!$("element").is(":animated")){}

延時動畫

語法:delay(duration)

$('#foo').slideUp(300).delay(800).fadeIn(400);

相關文章