鋒利的jQuery——讀書筆記四 jQuery中的事件和動(dòng)畫

jQuery的事件處理機(jī)制,增強(qiáng)了事件的處理能力向族,鏈?zhǔn)讲僮魇沟脛?dòng)畫更加的流暢和方便。封裝的方法讓我們不用去考慮處理js的瀏覽器兼容

jQuery中的事件

1. readyload 事件

$(document).ready()方法。DOM就緒就會(huì)被執(zhí)行崭参。
DOM樹解析完畢相寇,但是圖片可能未加載完慰于,圖片的高度和寬度屬性不一定有效

$(window).load(function(){ }) 方法,將處理函數(shù)綁定給window對(duì)象唤衫,則會(huì)在所有內(nèi)容加載完畢后觸發(fā)婆赠。可以綁定在元素上佳励,元素加載完后執(zhí)行

readyload 都可以多次使用

2. 事件綁定(on)

on(events,[selector],[data],fn)
events : 事件類型 blur休里、focus蛆挫、click、mouseover等等
selector: 篩選元素
data :可選參數(shù)妙黍,傳遞給事件對(duì)象的額外數(shù)據(jù)對(duì)象
fn :事件處理函數(shù)

$(this) jQuery代碼中的關(guān)鍵詞悴侵,在處理函數(shù)內(nèi),this 引用的是攜帶相應(yīng)行為的DOM元素

3. 合成事件

jQuery有兩個(gè)合成事件拭嫁,hover()toggle() 方法

  1. hover() 方法
    hover(enter,leave);
    模擬光標(biāo)懸停事件可免,光標(biāo)移動(dòng)到元素上時(shí),觸發(fā)enter 函數(shù)噩凹,光標(biāo)移出元素巴元,觸發(fā) leave 函數(shù)

  2. toggle() 方法
    toggle(fn1,fn2,···,fnN) (1.9版本后取消了這個(gè)方法)
    模擬鼠標(biāo)連續(xù)單擊事件,第一次單擊觸發(fā)函數(shù) fn1驮宴,第二次單擊觸發(fā)函數(shù) fn2逮刨,直到最后一個(gè),隨后單擊重復(fù)對(duì)這幾個(gè)函數(shù)輪番調(diào)用

    toggle另一個(gè)作用堵泽,切換元素的可見狀態(tài)

4. 事件冒泡

冒泡: **
假設(shè)網(wǎng)頁上有兩個(gè)元素修己,
div** 包裹著 span ,都綁定了click事件迎罗,body 也綁定了click 事件睬愤。當(dāng)點(diǎn)擊** span** 元素時(shí),也單擊了div和 ** body** 纹安,會(huì)按照向上冒泡的順序響應(yīng)click 事件

停止事件冒泡: stopPropagation()

$('span').on('click',function(event){
  alert("span 被點(diǎn)擊了");
  event.stopPropagation(); // 停止事件冒泡
});

這里對(duì)IE 和 其他瀏覽器的 封裝尤辱,不用去使用js里針對(duì)IE 需要單獨(dú)使用event.cancekBubble=true

**阻止默認(rèn)行為: preventDefault **
例如默認(rèn)鼠標(biāo)右鍵點(diǎn)擊菜單的顯示,表單提交按鈕的在信息錯(cuò)誤時(shí)取消提交等等
event.preventDefault

注:如果想同時(shí)對(duì)事件對(duì)象停止冒泡和默認(rèn)行為,可以在事件處理函數(shù)中返回false
return false

5. 事件對(duì)象的屬性

jQuery 對(duì)事件對(duì)象常用的屬性進(jìn)行了封裝厢岂,使得事件處理在各大瀏覽器下都可以正常允許而不需要進(jìn)行瀏覽器類型判斷

  • event.type 獲取事件類型
  • event.preventDefault 阻止默認(rèn)事件行為
  • ** event.stopPropagation()** 停止事件冒泡
  • event.target 獲取觸發(fā)事件的元素
  • event.relatedTarget 獲取相關(guān)元素
  • ** event.pageX**光標(biāo)相對(duì)于頁面的x坐標(biāo)
  • ** event.pageY**光標(biāo)相對(duì)于頁面的y坐標(biāo)(如果頁面上有滾動(dòng)條則還要加上滾動(dòng)條的寬度或者高度)
  • event.which 在鼠標(biāo)單擊事件中獲取到的鼠標(biāo)的左光督、中、右鍵塔粒,在鍵盤事件中獲取鍵盤按鍵
    1 = 左结借、 2 = 中 、3 = 右
  • ** event.metaKey** 鍵盤事件中獲取<ctrl>按鍵
6. 模擬操作

模擬用戶操作卒茬,例如打開頁面就觸發(fā)click事件 而不是需要用戶主動(dòng)去點(diǎn)擊

trigger 常用模擬

$('#btn').trigger('click');
//等價(jià)于
$('#btn').click();
//觸發(fā)自定義事件 myClick 自定義事件名
$('#btn').trigger('myClick');

trigger 傳遞數(shù)據(jù)
trigger(type,[data])
trigger方法觸發(fā)事件后船老,會(huì)執(zhí)行瀏覽器默認(rèn)操作。使用triggerHandler方法取消默認(rèn)操作

jQuery中的動(dòng)畫

jQuery 做動(dòng)畫要就在標(biāo)準(zhǔn)模式下圃酵,否則可能會(huì)引起動(dòng)畫抖動(dòng)

1.show 和 hide 方法

**hide: ** 在將元素的display 屬性設(shè)置為 none 之前柳畔,先記住原先的display屬性值

**show : ** 根據(jù)之前記錄的display 屬性值,來顯示元素

2.fadeIn 和 fadeOut 方法

與show 和 hide 方法 類似辜昵,顯示和隱藏元素荸镊,通過改變?cè)氐耐该鞫?/p>

3.slideUp 和 slideDown 方法

改變?cè)氐母叨?br> **slideUp: ** 元素由下到上縮短隱藏

**slideDown: **元素由上至下延伸展示

3.自定義動(dòng)畫方法animate()

animate(params,speed,callback)
params : 一個(gè)包含屬性及值的映射例如{left:1000}
speed : 速度參數(shù) 可選
callback : 在動(dòng)畫完成時(shí)執(zhí)行的函數(shù) 可選

停止動(dòng)畫: stop ([clearQueue],[gotoEnd])
clearQueue: 是否清空未執(zhí)行的動(dòng)畫隊(duì)列 可選
gotoEnd: 是否將正在執(zhí)行的動(dòng)畫跳轉(zhuǎn)到末狀態(tài)

判斷元素是否處于動(dòng)畫狀態(tài)

if(!$(element).is(":animated")){  
//如果當(dāng)前沒有進(jìn)行的動(dòng)畫
}

延遲動(dòng)畫:
delay();

3. 其他動(dòng)畫方法

toggle方法
切換元素的可見狀態(tài)

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

fadeTo方法
把元素的不透明度以漸近的方式調(diào)整到指定的值

fadeToggle方法
通過不透明度變化來切換匹配元素的可見性

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市堪置,隨后出現(xiàn)的幾起案子躬存,更是在濱河造成了極大的恐慌,老刑警劉巖舀锨,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件岭洲,死亡現(xiàn)場離奇詭異,居然都是意外死亡坎匿,警方通過查閱死者的電腦和手機(jī)盾剩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來替蔬,“玉大人告私,你說我怎么就攤上這事〕星牛” “怎么了驻粟?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長凶异。 經(jīng)常有香客問我蜀撑,道長,這世上最難降的妖魔是什么剩彬? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任酷麦,我火速辦了婚禮,結(jié)果婚禮上喉恋,老公的妹妹穿的比我還像新娘沃饶。我一直安慰自己,他們只是感情好轻黑,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布糊肤。 她就那樣靜靜地躺著,像睡著了一般苔悦。 火紅的嫁衣襯著肌膚如雪轩褐。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天玖详,我揣著相機(jī)與錄音把介,去河邊找鬼。 笑死蟋座,一個(gè)胖子當(dāng)著我的面吹牛拗踢,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播向臀,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼巢墅,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起君纫,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤驯遇,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后蓄髓,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體叉庐,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年会喝,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了陡叠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡肢执,死狀恐怖枉阵,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情预茄,我是刑警寧澤兴溜,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站反璃,受9級(jí)特大地震影響昵慌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜淮蜈,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一斋攀、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧梧田,春花似錦淳蔼、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至穿稳,卻和暖如春存皂,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背逢艘。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來泰國打工旦袋, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人它改。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓疤孕,卻偏偏與公主長得像,于是被迫代替她去往敵國和親央拖。 傳聞我的和親對(duì)象是個(gè)殘疾皇子祭阀,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 1.JQuery 基礎(chǔ) 改變web開發(fā)人員創(chuàng)造搞交互性界面的方式鹉戚。設(shè)計(jì)者無需花費(fèi)時(shí)間糾纏JS復(fù)雜的高級(jí)特性。 1....
    LaBaby_閱讀 1,330評(píng)論 0 2
  • 原文鏈接 http://blog.poetries.top/2016/10/20/review-jQuery 關(guān)注...
    程序員poetry閱讀 16,636評(píng)論 18 503
  • 1.JQuery 基礎(chǔ) 改變web開發(fā)人員創(chuàng)造搞交互性界面的方式专控。設(shè)計(jì)者無需花費(fèi)時(shí)間糾纏JS復(fù)雜的高級(jí)特性抹凳。 1....
    LaBaby_閱讀 1,167評(píng)論 0 1
  • 1、 jQuery 能做什么踩官? jquery是一個(gè)豐富的js庫却桶,內(nèi)部對(duì)js的很多復(fù)雜的方法進(jìn)行了封裝和加工境输,比如j...
    zh_yang閱讀 1,403評(píng)論 6 13
  • ES6數(shù)組擴(kuò)展 1.Array.from() 定義:Array.from()用于將兩類對(duì)象轉(zhuǎn)換成真正的數(shù)組:類數(shù)組...
    lijaha閱讀 423評(píng)論 0 0