国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JavaScript事件類型中UI事件詳解

2019-11-20 10:48:27
字體:
來源:轉載
供稿:網友

“DOM3級事件”規定了一下幾類事件

UI事件,當用戶與頁面上的元素交互時除法;
焦點事件,元素獲得或失去焦點;
鼠標事件,通過鼠標在頁面上執行操作;
滾輪事件,使用鼠標滾輪或類似設備;
文本事件,當用戶在文檔中輸入文本;
鍵盤事件,通過鍵盤在頁面上執行操作;
合成事件,當為IME(Input Method Editor,輸入法編輯器)輸入字符時除法;
變動事件(mutation),底層DOM結構發生變化;
變動名稱事件,當元素或屬性名變動時,此類事件已被廢棄。
下文著重說明UI事件的內容

UI事件指的是那些不一定與用戶操作有關的事件。

DOMActivate,元素已經被用戶操作(鼠標或鍵盤)激活。已經被廢棄。load,頁面完全加載完后在window上觸發,所有框架加載完畢后在框架集上觸發,圖像加載完畢在img元素上觸發,當嵌入內容加載完畢在object元素上觸發。unload,頁面完全卸載(window),所有框架都卸載后(框架集),嵌入內容卸載完畢后(object)。abort,當用戶停止下載過程,如果嵌入內容沒有加載完,則在object元素上除法。error,當js錯誤時(window),當無法加載圖像時(img),當無法加載嵌入內容時(object),當一或多個框架無法加載(框架集)。select,當用戶選擇文本框(texterea或input)中的一個或多個字符時觸發。resize:當窗口或框架的大小變化時(window或框架)scroll:當用戶滾動帶滾動條的元素中的內容時(在該元素上觸發)

load事件

js中最常用的一個事件就是load,當頁面完全加載完畢后(所有圖像、js文件、css文件等),就會觸發window上面的load事件。如:

window.onload = function () {  console.log('loaded');}

一般來說,在window上面發生的任何事件都可以在body元素中通過相應的特征來指定,因為在HTML中無法訪問window元素。這只是為了保證向后兼容的一種權宜之計。如:

document.body.onload = function () {  console.log('loaded');}

同樣也可以在圖像元素上使用:

var img = document.getElementById("img");img.onload = function () {  console.log(event.target.src);}

又如下面代碼,在window加載完畢后,想body追加一個img元素,在img元素加載完畢后再提示圖像的src以及一個提示信息:

window.onload = function () {  var image = document.createElement("img");  document.body.appendChild(image);  image.src = "scr.png"  image.onload = function () {    console.log(event.target.src);    console.log('img is loaded');  };}

另外,script元素也以非標準的方式支持load事件。

部分瀏覽器還支持link元素上的load事件,以便開發人員確定樣式表是否加載完畢。

unload事件

這個事件在文檔被完全卸載后觸發。只要用戶從一個頁面切換到另一個頁面,就會發生unload事件。

window.onunload = function () {  alert("8888");}

應該小心編寫onunload事件處理程序中的代碼,因為頁面加載后存在的那些對象,此時就不一定存在了。

resize事件

當瀏覽器窗口被調整到一個新的高度或寬度,就會觸發該事件。

window.onresize = function () {  console.log(document.body.clientWidth);}

因為部分瀏覽器在窗口變化了1像素就觸發該事件,并隨著變化不斷觸發;也有瀏覽器則只會在用戶停止調整窗口大小時才會觸發。所以應該避免在這個事件的處理程序中加入大量的計算代碼,避免瀏覽器反應變慢。

scroll事件

該事件雖然在window對象上發生的,但實際表示的是頁面中響應元素的變化。混雜模式下,通過body元素的scrollLeft和scrollTop來監控變化;而在非標準模式下,除Safari之外的所有瀏覽器都會通過html元素(documentElement)來反映這個變化:

window.onscroll = function () {  console.log(document.documentElement.scrollTop || document.body.scrollTop);}

因為瀏覽器隨著變化不斷觸發,所以應該避免在這個事件的處理程序中加入大量的計算代碼,避免瀏覽器反應變慢。

abort事件

關于abort、error、select等事件請關注后續update

error事件

關于abort、error、select等事件請關注后續update

select事件

關于abort、error、select等事件請關注后續update

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 扶风县| 马鞍山市| 许昌县| 海口市| 阿巴嘎旗| 蒙山县| 洛扎县| 泰顺县| 布尔津县| 孟村| 庄浪县| 县级市| 临泽县| 周口市| 临泉县| 东辽县| 胶州市| 益阳市| 泾源县| 临泽县| 洪江市| 桐庐县| 云林县| 大新县| 乌什县| 澎湖县| 昔阳县| 博罗县| 凤翔县| 新津县| 昌都县| 莫力| 习水县| 高清| 塔河县| 女性| 遵义市| 敦煌市| 宜兰县| 如东县| 龙州县|