国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JS事件淺析

youkede / 897人閱讀

摘要:事件有很多,有我用過的有我沒用過的,今天我想分析一番。阻止默認事件,表單提交,標簽。觸發事件的元素,事件委托會用到。在文本插入文本框之前會觸發事件。

一個網頁由三層組成(html 結構,js 行為,css 表現),一切的東西其實都建立在html上,html里面的dom提供了一些事件,然后通過js封裝,我們可以用js去調用dom上的事件。事件有很多,有我用過的有我沒用過的,今天我想分析一番。

事件流

我們都知道,有兩種事件流,一個是冒泡一個是捕獲。

捕獲就是從body開始到你觸發事件的節點,從外到內的一個過程。

冒泡呢,與之相反,從你觸發的節點開始,一級一級往外,直到body,是一個從內到外的過程。

那么他們兩個是同時進行的嗎?他們的順序是先捕獲,再冒泡。

在addEventListener中addEventListener(event事件名稱,function回調函數,是否在捕獲或冒泡階段執行)第三個參數可以改變事件觸發時機。

事件對象 event

div.onclick=function(event){}這個里面的event就是事件對象,我這里說幾個常用的。

event.preventDefault() //阻止默認事件,表單提交,a標簽。
event.stopPropagation() //阻止傳遞下去,一幫用在一些自定義組件上,比如遮罩隱藏,在彈框上就要阻止傳遞了。
event.target //觸發事件的元素,事件委托會用到。
事件名稱

下面我會把事件列舉一下

通用事件

load 加載成功,window.load(function(){}),還有一個與之類似的DOMContentLoad當DOM加載完成之后觸發。

unload 與之相反,卸載的時候

error 發送錯誤的時候,這個比較有意思。img觸發error之后使用一張占位圖。監聽全局的錯誤提示,然后統計匯總,比如fundebug,也可以自己根據特性寫一個針對公司項目的。

scroll 滾動的時候觸發,無限滾動之類的一些效果

resize 放大縮小窗口的時候發生變化,和上面的scroll都需要注意去抖,

鼠標事件 傳送門,去看鼠標事件

click 單擊事件,在DOM上單擊鼠標時候觸發。用戶在完成一次mousedown和mouseup之后觸發click。觸發順序是:mousedown -> mouseup -> click。

mousedownmouseup 鼠標按下和彈起,使用頻率不是很高。可以做一下拖動之類的效果。

mouseoutmouseover 鼠標移出和移入,使用起來會有冒泡的問題,可以使用延時的方法解決

mouseleavemouseenter 鼠標移除和移除,解決了冒泡的問題。

mousemove 鼠標移動

鍵盤通用事件

keydown 按下鍵盤

keypress 中間的一個事件

keyup 抬起鍵盤

textInput 是對keypress的補充,用意是在將文本顯示給用戶之前更容易攔截文本。在文本插入文本框之前會觸發textInput事件。

compositionstart 在IME的文本復合系統打開時觸發,表示要開始輸入了。當你使用輸入法的時候會觸發一下

compositionupdate 在向輸入字段中插入新字符時觸發。

compositionend 在IME的文本復合系統關閉時觸發,表示返回正常鍵盤的輸入狀態。

控件事件

input 當內容發生改變的時觸發,有可能是代碼觸發的改動兼容ie的話input propertychange

change 當失去焦點時,內容改變觸發

blur 失去焦點觸發

focus 獲得焦點觸發

DOM變動事件
這類事件我沒有用到過,前段時間在網上看到了一些,整合一下寫寫測試測試地址

DOMNodeInserted 插入節點時觸發,appendChild這種

DOMNodeRemoved 移除節點時觸發,removeChild

DOMSubtreeModified 發生變化最后會觸發

DOMNodeInsertedIntoDocument

DOMAttrModified

DOMCharacterDataModified

觸摸事件 移動端

touchstart 觸摸

touchmove 觸摸時移動

touchend 移開
手勢 gesturestart - gesturechange - gestureend

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/51032.html

相關文章

  • JS事件淺析

    摘要:事件有很多,有我用過的有我沒用過的,今天我想分析一番。阻止默認事件,表單提交,標簽。觸發事件的元素,事件委托會用到。在文本插入文本框之前會觸發事件。 一個網頁由三層組成(html 結構,js 行為,css 表現),一切的東西其實都建立在html上,html里面的dom提供了一些事件,然后通過js封裝,我們可以用js去調用dom上的事件。事件有很多,有我用過的有我沒用過的,今天我想分析一...

    klivitamJ 評論0 收藏0
  • 淺析 JS 事件循環之 Microtask 和 Macrotask

    摘要:常見應用則是為了完成一些更新應用程序狀態的較小的任務,如處理的回調和的修改,以便讓這些任務在瀏覽器重新渲染之前執行。常見應用執行順序的實現需要至少一個和至少一個。 簡介 我們在上一篇 《淺析 JS 中的EventLoop 事件循環》 中提到一個 Event Queue,其實在事件循環中 queue 一共有兩種,還有一種叫 Job Queue 其中 Event Queue 在 HTML...

    sihai 評論0 收藏0
  • 淺析 JS 中的 EventLoop 事件循環(新手向)

    摘要:同時,如果執行的過程中發現其他函數,繼續入棧然后執行。上面我們討論的其實都是同步代碼,代碼在運行的時候只用調用棧解釋就可以了。 序 Event Loop 這個概念相信大家或多或少都了解過,但是有一次被一個小伙伴問到它具體的原理的時候,感覺自己只知道個大概印象,于是計劃著寫一篇文章,用輸出倒逼輸入,讓自己重新學習這個概念,同時也能幫助更多的人理解它~ 概念 JavaScript 是一門 ...

    chadLi 評論0 收藏0
  • Service Worker 淺析

    摘要:可以發送通知消息以再次吸引用戶并留住他們。在即時通訊等使用情形中,一條消息可將最多的有效負載傳送至客戶端應用。瀏覽器的的消息推送主要依賴,服務端消息推送傳遞到,然后再由推送到客戶端。 引言 Progressive Web App, 簡稱 PWA,是提升 Web App 的體驗的一種新方法,能給用戶原生應用的體驗。Service Worker 是 PWA 中的重要一部分。Service ...

    The question 評論0 收藏0

發表評論

0條評論

youkede

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<