jQuery事件和動畫

jQuery事件和動畫

事件的概念: 在JavaScript和HTML之間的交互是通過用戶和瀏覽器操作頁面是引發的事件來處理,當文檔或者它的某些元素髮生某些變化或操作時,瀏覽器會自動生成一個事件

事件的定義:

1.通俗的講,我們要做的那件事(操作,動作,行爲),就是一個事件

2.在瀏覽器,事件是指: 瀏覽器打開到關閉這個過程中,用戶在瀏覽器所做的一系列操作就是事件;同時,用戶所做的事件,一般都有相應的響應(函數),因此,完整的事件,一般都會有某個操作的同時,會做出相應的響應

3.瀏覽器事件一般有以下分類

1)鼠標事件 -> 單擊 雙擊 鼠標經過 離開.....

2)鍵盤事件 -> 鍵盤按下 彈起......

3)瀏覽器事件 -> 加載事件 窗口大小改變

4.事件源 -> 發生事件的源頭

1、事件的綁定

1.bind(type,[data],fn) -> 爲每個匹配元素的特定事件綁定事件處理函數 -> 選擇器事件類型事件類型或者("選擇器").bind("事件類型", function(){}) ;

2.on(enents,[selector],[data],fn) -> 在選擇元素上綁定一個或多個事件的事件處理函數 -> $("選擇器").on("事件類型", function(){}) ;

3.one(type,[data],fn) -> 爲每一個匹配元素的特定事件(像click)綁定一個一次性的事件處理函數 -> $("選擇器").one("事件類型", function(){});

4.簡寫綁定事件 -> $("選擇器").事件類型(function(){}) ;

-> $("p").click(function(){

//函數體

}) ;

2、事件的移除

1.unbind() -> bind()的反向操作,從每一個匹配的元素中刪除綁定的事件 -> $("選擇器").unbind()

2.off() ->在選擇元素上移除一個或多個事件的事件處理函數 -> 選擇器("選擇器").off( "事件類型", "**" )

3、事件對象 & 事件冒泡

1.事件源: event.target -> 最初觸發事件的DOM元素

2.鼠標相對頁面的座標: event.pageX & event.pageY -> 鼠標相對於文檔的左右邊緣的位置(單位像素(px))

3.鼠標鍵的類型: event.which() -> 針對鍵盤和鼠標事件,這個屬性能確定你到底按的是哪個鍵或按鈕(左鍵 1; 右鍵 3; 中間鍵 2)

4.阻止事件冒泡: event.stopPropagation() -> 防止事件冒泡到DOM樹上,也就是不觸發的任何前輩元素上的事件處理函數

$("選擇器").click(function(event){

event.stopPropagation(); // do something

});

5.阻止默認行爲: event.preventDefault() -> 阻止默認事件行爲的觸發 -> $("a").click(function(event) {

event.preventDefault();

}) ;

4、合成事件

1.hover([over,]out): 一個模仿懸停事件(鼠標移動到一個對象上面及移出這個對象)的方法.這是一個自定義的方法,它爲頻繁使用的任務提供了一種"保持在其中"的狀態

2.toggle():用於綁定兩個或多個事件處理器函數,以響應被選元素的輪流的 click 事件 -> $("p").toggle("slow");

3.trigger() -> 在每一個匹配的元素上觸發某類事件 ->

$("#btn").trigger("click") ; 等於 $("#btn").click() ;

5、動畫

1.動畫基礎

1)width()/height(): 取得第一個匹配元素當前計算的寬度值(px)/取得第一個匹配元素當前計算的高度值(px)

2)offset(): 獲取匹配元素在當前視口的相對偏移

3)position(): 獲取匹配元素相對父元素的偏移

4)scrollTop()/scrollLeft(): 獲取匹配元素相對滾動條頂部的偏移/獲取匹配元素相對滾動條左側的偏移

2.常用動畫

1)show()/hide(): 顯示隱藏的匹配元素/隱藏顯示的元素 -> ("p").hide()

2)fadeIn()/fadeOut():通過不透明度的變化來實現所有匹配元素的淡入/淡出效果, 並在動畫完成後可選地觸發一個回調函數

-> ("p").fadeOut("slow");

3)slideUp()/slideDown():通過高度變化(向上減小)來動態地隱藏/顯示所有匹配的元素,在隱藏/顯示完成後可選地觸發一個回調函數 -> ("p").slideDown("slow");

4)toggle():用於綁定兩個或多個事件處理器函數,以響應被選元素的輪流的 click 事件 -> $("td").toggle() ;

5)slideToggle(): 通過高度變化來切換所有匹配元素的可見性,並在切換完成後可選地觸發一個回調函數 -> $("p").slideToggle("slow") ;

6)fadeTo():把所有匹配元素的不透明度以漸進方式調整到指定的不透明度,並在動畫完成後可選地觸發一個回調函數 -> $("p").fadeTo("slow", 0.66);

.......

3.自定義動畫

animate(params,[speed],[easing],[fn])

params: 一組包含作爲動畫屬性和終值的樣式屬性和及其值的集合

speed: 三種預定速度之一的字符串("slow","normal", or "fast")或表示動畫時長的毫秒數值(如: 1000)

easing: 要使用的擦除效果的名稱(需要插件支持).默認jQuery提供"linear" 和 "swing".

fn: 在動畫完成時執行的函數,每個元素執行一次

#one {

width: 100px;

height: 100px;

background:red ;

color:#FFF ;

} ->

$("#one").animate({ //選擇要操作的節點,創建自定義動畫

                 width : "300px", // 寬度 100px -> 300px

                 height : "200px", // 高度 100px -> 300px

                 fontSize : "50px", // 字體 默認 -> 50px

                 opacity : 0.5 // 透明度 1.0 -> 0.5  

          },5000,"linear",function(){ // 5000ms(5s)完成動畫效果

                 alert("動畫已經完成! ") ; // 提示完成動畫

   }) ;

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