日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

js(Dom+Bom)第五天(2)

發(fā)布時間:2023/12/13 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js(Dom+Bom)第五天(2) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

webAPI

01-事件監(jiān)聽

  • 為什么要學(xué)事件監(jiān)聽

    之前給元素注冊事件的時候,同一個事件會被覆蓋掉
  • 事件監(jiān)聽的本質(zhì)

    通過另外一種方式給元素注冊事件, 同時可以解決同一個事件不會被覆蓋掉.
  • 知識點-通過 on 方式給元素注冊事件

    之前注冊事件的方式:事件源.onclick = function() {}on是一種方式 click 才是一個具體的事件類型特點: 1.無法給同一個事件源注冊同一種事件類型,后面的事件會將前面的事件覆蓋掉. 2.對象身上有onclick這個屬性, 當(dāng)給onclick這個屬性賦值的時候,屬性原來的值會被覆蓋掉
  • 知識點-通過addEventListener方式注冊事件

    • 語法

      事件源.addEventListener('事件類型', 函數(shù)處理程序);注意事項: 1. 事件類型是不能代 'on' 例如點擊事件: click 2. 函數(shù)處理程序 可以是一個匿名函數(shù),也可以調(diào)用一個命名函數(shù) 3. 第二個參數(shù)函數(shù)處理程序如果是一個命名函數(shù),那么只寫函數(shù)的名稱,不能加小括號(代表函數(shù)的調(diào)用)例如: btn.addEventListener('click', fn); function fn() {alert('你好'); }4. 如果addEventListener想要調(diào)用一個帶有參數(shù)的函數(shù)那么可以按照如下寫法:btn.addEventListener('click', function(){fn(2); })function fn(a){alert(a); }
    • 特點

      • addEventListener 在注冊事件的時候,同一種事件不會被覆蓋掉
      • 原理:將事件添加到一個 eventTarget 對象集合(數(shù)組)上
  • 知識點-通過attachEvent方式注冊事件

    • attachEvent 專門為IE低版本瀏覽器設(shè)置的方法

    • 語法

      事件源.attachEvent('事件類型', 處理程序);
    • 特點

      • 事件類型需要加 ‘on’
      • 處理程序 與 addEventListener 中的處理程序用法一模一樣
  • 知識點-移除事件

    • 移除 on 方式注冊事件

      事件源.事件類型 = null; 例如:div.onclick = null;
    • 移除addEventListener事件

      • 語法

        DOM.removeEventListener('事件類型', 命名函數(shù))
      • 總結(jié)

      • removeEventListener()這個方法就是用來移除addEventListener注冊的事件
      • addEventListener注冊事件的時候,必須使用命名函數(shù)
      • removeEventListener()中第二參數(shù)命名函數(shù)

    • 移除attachEvent事件

      DOM.detachEvent(event_type,event_name)
      • 總結(jié):
      • detachEvent方法是用來移除 attachEvent 事件的
      • detachEvent()方法中第二個參數(shù)也需要一個命名函數(shù)
      • detachEvent方法的使用方式與removeEventListener一樣

  • 5. 兼容寫法

    var btn = document.getElementById("myBtn"); if (btn.addEventListener) { btn.addEventListener("click", myFunction); } else if (btn.attachEvent) {//兼容寫法btn.attachEvent("onclick", myFunction); }

    02-事件流

    在網(wǎng)頁中,如果遇到嵌套的盒子, 那么當(dāng)點擊子元素的時候, 父元素也會有被點擊的效果 ----> 類似于CSS中的塌陷
  • 事件流組成

    • 知識點-事件冒泡階段

      以點擊事件舉例:子元素被點了, 父元素也有被點擊的效果 ----> 事件冒泡
    • 知識點-事件捕獲階段

      以點擊事件舉例:當(dāng)前元素被點擊的時候, 先從父元素開始執(zhí)行, 然后傳到 子元素
    • 知識點-事件目標(biāo)階段

      事件目標(biāo)階段 : 就是指的是當(dāng)前事件源

    • 事件流總結(jié)

      1. 事件流與注冊事件的方式?jīng)]有任何關(guān)系 2. 不是所有的事件都有事件冒泡 3. 如果當(dāng)前事件有冒泡, 那么通過 addEventListener 可以將冒泡階段和 捕獲階段都可以通過第三參數(shù)表現(xiàn)出來 4. 如果有事件冒泡, 那么 通過 onclick 這種方式 只能看到冒泡階段, 無法表現(xiàn)捕獲階段(不支持第三個參數(shù))
  • 事件委托

    事件委托: 屬于一種編程實現(xiàn). 事件委托: 本應(yīng)該當(dāng)前事件源執(zhí)行對應(yīng)的事件,但是最后是交給父元素執(zhí)行的
    • 事件委托具備的條件
      • 當(dāng)前元素得有父元素
      • 當(dāng)前事件得有冒泡效果
  • 事件對象參數(shù)

    • 什么是事件對象參數(shù)

      事件對象參數(shù): 事件中內(nèi)置的一個參數(shù), 保存了用戶在執(zhí)行這個事件時候的一些信息比如: 當(dāng)前事件的類型, 點擊的對象是誰(真正的事件源是誰).....
    • 事件對象參數(shù)怎么用

    • 事件對象參數(shù)不需要我們手動的傳值(當(dāng)執(zhí)行事件的時候,就會有值)
    • 事件對象參數(shù)本質(zhì)上就是一個對象
  • 03-事件對象參數(shù)

    一下的代碼結(jié)構(gòu)可以用此方式查詢:

    Dom.onclick = function(e){console.log(e); }

  • e.target : 獲取真正觸發(fā)事件的對象(事件源)

  • e.type: 事件類型

  • e.clientX | e.clientY (鼠標(biāo)坐標(biāo)信息)

    e.clientX : 獲取鼠標(biāo)的橫坐標(biāo)相對整個網(wǎng)頁的可視區(qū)域 e.clientY : 獲取鼠標(biāo)的縱坐標(biāo)相對整個網(wǎng)頁的可視區(qū)域
  • e.pageX | e.pageY (鼠標(biāo)坐標(biāo)信息)

    e.pageX: 獲取鼠標(biāo)的橫坐標(biāo)相對整個頁面的 e.pageY: 獲取鼠標(biāo)的縱坐標(biāo)相對整個頁面的如果: 1. 網(wǎng)頁中沒有滾動條, 默認(rèn) e.pageX 和 e.clientX 2. 如果網(wǎng)頁中有滾動條, 那么 e.pageX 就要包含滾動條滾出去的位置
  • e.screenX | e.screenY (鼠標(biāo)坐標(biāo)信息)

    e.screenX: 獲取鼠標(biāo)橫坐標(biāo)相對整個屏幕的 e.screenY: 獲取鼠標(biāo)的縱坐標(biāo)相對整個屏幕的
  • e.offsetX | e.offsetY (鼠標(biāo)坐標(biāo)信息)

    e.offsetX : 獲取鼠標(biāo)橫坐標(biāo)相對當(dāng)前事件源左上角 e.offsetY: 獲取鼠標(biāo)縱坐標(biāo)相對當(dāng)前事件源左上角
  • e.stopPropagation() 阻止事件冒泡

    e.stopPropagation() 作用: 阻止事件冒泡
  • 04-鍵盤事件對象參數(shù)

  • 知識點-onkeydown事件
  • 知識點-onkeyup事件
  • 知識點-onkeypress事件
  • 鍵盤事件對象參數(shù)
    • e.key
    • e.keyCode
  • 課堂案例-鍵盤移動案例
  • BOM

    取鼠標(biāo)縱坐標(biāo)相對當(dāng)前事件源左上角

    7. e.stopPropagation() 阻止事件冒泡 ```js e.stopPropagation() 作用: 阻止事件冒泡

    04-鍵盤事件對象參數(shù)

  • 知識點-onkeydown事件
  • 知識點-onkeyup事件
  • 知識點-onkeypress事件
  • 鍵盤事件對象參數(shù)
    • e.key
    • e.keyCode
  • 課堂案例-鍵盤移動案例
  • BOM

    總結(jié)

    以上是生活随笔為你收集整理的js(Dom+Bom)第五天(2)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。