最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript事件類型中UI事件詳解

 更新時間:2016年01月14日 08:57:00   投稿:hebedich  
這篇文章主要介紹了JavaScript事件類型中UI事件詳解的相關(guān)資料,需要的朋友可以參考下

“DOM3級事件”規(guī)定了一下幾類事件

UI事件,當用戶與頁面上的元素交互時除法;
焦點事件,元素獲得或失去焦點;
鼠標事件,通過鼠標在頁面上執(zhí)行操作;
滾輪事件,使用鼠標滾輪或類似設(shè)備;
文本事件,當用戶在文檔中輸入文本;
鍵盤事件,通過鍵盤在頁面上執(zhí)行操作;
合成事件,當為IME(Input Method Editor,輸入法編輯器)輸入字符時除法;
變動事件(mutation),底層DOM結(jié)構(gòu)發(fā)生變化;
變動名稱事件,當元素或?qū)傩悦儎訒r,此類事件已被廢棄。
下文著重說明UI事件的內(nèi)容

UI事件指的是那些不一定與用戶操作有關(guān)的事件。

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

load事件

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

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

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

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事件,以便開發(fā)人員確定樣式表是否加載完畢。

unload事件

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

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

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

resize事件

當瀏覽器窗口被調(diào)整到一個新的高度或?qū)挾?,就會觸發(fā)該事件。

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

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

scroll事件

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

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

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

abort事件

關(guān)于abort、error、select等事件請關(guān)注后續(xù)update

error事件

關(guān)于abort、error、select等事件請關(guān)注后續(xù)update

select事件

關(guān)于abort、error、select等事件請關(guān)注后續(xù)update

相關(guān)文章

  • 深入淺析JSON.parse()、JSON.stringify()和eval()的作用詳解

    深入淺析JSON.parse()、JSON.stringify()和eval()的作用詳解

    這篇文章主要介紹了深入淺析JSON.parse()、JSON.stringify()和eval()的作用詳解的相關(guān)資料,需要的朋友可以參考下
    2016-04-04
  • 簡單對比分析JavaScript中的apply,call與this的使用

    簡單對比分析JavaScript中的apply,call與this的使用

    簡單的說call,apply都屬于Function.prototype的一個方法,它是JavaScript引擎內(nèi)在實現(xiàn)的,因為屬于Function.prototype,所以每個Function對象實例(就是每個方法)都有call,apply屬性。既然作為方法的屬性,那它們的使用就當然是針對方法的了,這兩個方法是容易混淆的
    2015-12-12
  • JavaScript之WebSocket技術(shù)詳解

    JavaScript之WebSocket技術(shù)詳解

    這篇文章主要為大家詳細介紹了JavaScript之WebSocket技術(shù),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • fetch 使用及如何接收JS傳值

    fetch 使用及如何接收JS傳值

    這篇文章主和要介紹了fetch 使用及如何接收JS傳值,文中給大家提到了fetch基本使用方式和接收js傳值的使用方式,需要的朋友可以參考下
    2017-11-11
  • webpack的pitching loader詳解

    webpack的pitching loader詳解

    這篇文章主要介紹了webpack的pitching loader詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • Bootstrap 3瀏覽器兼容性問題及解決方案

    Bootstrap 3瀏覽器兼容性問題及解決方案

    這篇文章主要為大家詳細介紹了 Bootstrap 3 瀏覽器兼容性問題及其對應(yīng)的解決方案,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • 用ES6的class模仿Vue寫一個雙向綁定的示例代碼

    用ES6的class模仿Vue寫一個雙向綁定的示例代碼

    本篇文章主要介紹了用ES6的class模仿Vue寫一個雙向綁定的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • js高精度計算decimal.js庫用法demo

    js高精度計算decimal.js庫用法demo

    這篇文章主要給大家介紹了關(guān)于js高精度計算decimal.js庫用法的相關(guān)資料,decimal.js是使用的二進制來計算的,所以能解決js的精度問題,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-11-11
  • 微信小程序自定義yPicker組件實現(xiàn)省市區(qū)三級聯(lián)動功能

    微信小程序自定義yPicker組件實現(xiàn)省市區(qū)三級聯(lián)動功能

    這篇文章主要介紹了微信小程序自定義yPicker組件分析及省市區(qū)三級聯(lián)動實現(xiàn),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • JavaScript詳解使用Promise處理回調(diào)地獄與async?await修飾符

    JavaScript詳解使用Promise處理回調(diào)地獄與async?await修飾符

    這篇文章主要介紹了JavaScript使用Promise處理回調(diào)地獄與async?await修飾符,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07

最新評論

乌拉特前旗| 蛟河市| 临漳县| 梁山县| 太白县| 尖扎县| 巩留县| 田林县| 上虞市| 蒲江县| 马龙县| 南平市| 东丽区| 阿图什市| 图片| 西丰县| 交城县| 九寨沟县| 辰溪县| 石家庄市| 泽库县| 海宁市| 哈密市| 政和县| 罗源县| 静宁县| 长汀县| 滁州市| 武夷山市| 宁南县| 桐梓县| 崇义县| 麻城市| 吐鲁番市| 简阳市| 五寨县| 龙门县| 偏关县| 南宁市| 城口县| 普宁市|