国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

JavaScript 基礎 DOM (二)

這篇具有很好參考價值的文章主要介紹了JavaScript 基礎 DOM (二)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

事件流

事件流是對事件執(zhí)行過程的描述

事件捕獲

從DOM的根元素開始去執(zhí)行對應的事件 (從外到里)

事件冒泡

當一個元素的事件被觸發(fā)時,同樣的事件將會在該元素的所有祖先元素中依次被觸發(fā)。這一過程被稱為事件冒 泡
  1. addEventListener?第3個參數(shù)決定了事件是在捕獲階段觸發(fā)還是在冒泡階段觸發(fā)
  2. addEventListener?第3個參數(shù)為?true?表示捕獲階段觸發(fā),false?表示冒泡階段觸發(fā),默認值為?false
  3. 事件流只會在父子元素具有相同事件類型時才會產生影響
  4. 絕大部分場景都采用默認的冒泡模式

阻止冒泡?

// 組織流動傳播 ?事件對象.stopPropagation()

? ? ? e.stopPropagation()

我們某些情況下需要阻止 元素默認行為 默認行為的發(fā)生,比如 阻止 鏈接的跳轉,表單域跳轉
JavaScript 基礎 DOM (二)
注意: 此方法可以阻斷事件流動傳播,不光在冒泡階段有效,捕獲階段也有效

解綁事件

on事件方式,直接使用null覆蓋偶就可以實現(xiàn)事件的解綁

addEventListener方式,必須使用:
removeEventListener(事件類型, 事件處理函數(shù), [獲取捕獲或者冒泡階段])
注意:匿名函數(shù)無法被解綁
<button>點擊</button>
  <script>
    const btn = document.querySelector('button')
    // btn.onclick = function () {
    //   alert('點擊了')
    //   // L0 事件移除解綁
    //   btn.onclick = null
    // }
    function fn() {
      alert('點擊了')
    }
    btn.addEventListener('click', fn)
    // L2 事件移除解綁
    btn.removeEventListener('click', fn)
  </script>
鼠標經(jīng)過事件:
  • ? mouseover 和 mouseout 會有冒泡效果
  • ? mouseenter 和 mouseleave 沒有冒泡效果 (推薦)

JavaScript 基礎 DOM (二)

事件委托

事件委托是利用事件流的特征解決一些現(xiàn)實開發(fā)需求的知識技巧,主要的作用是提升程序效率。

原理:事件委托其實是利用事件冒泡的特點。
  • ?父元素注冊事件,當我們觸發(fā)子元素的時候,會冒泡到父元素身上,從而觸發(fā)父元素的事
? 實現(xiàn):事件對象.target. tagName 可以獲得真正觸發(fā)事件的元素
<script>
    // 點擊每個小li 當前l(fā)i 文字變?yōu)榧t色
    // 按照事件委托的方式  委托給父級,事件寫到父級身上
    // 1. 獲得父元素
    const ul = document.querySelector('ul')
    ul.addEventListener('click', function (e) {
      // alert(11)
      // this.style.color = 'red'
      // console.dir(e.target) // 就是我們點擊的那個對象
      // e.target.style.color = 'red'
      // 我的需求,我們只要點擊li才會有效果
      if (e.target.tagName === 'LI') {
        e.target.style.color = 'red'
      }

其他事件

頁面加載事件

加載外部資源(如圖片、外聯(lián)CSS和JavaScript等)加載完畢時觸發(fā)的事件

有些時候需要等頁面資源全部處理完了做一些事情

事件名:load

監(jiān)聽頁面所有資源加載完畢:

? 監(jiān)聽整個頁面資源給 window
window.addEventListener('load', function() {
    // xxxxx
})
事件名 :DOMContentLoaded
當初始的 HTML 文檔被完全加載和解析完成之后,DOMContentLoaded 事件被觸發(fā),而無需等待樣式表、圖像等完 全加載
? document
JavaScript 基礎 DOM (二)

元素滾動事件

滾動條在滾動的時候持續(xù)觸發(fā)的事件

window.addEventListener('scroll', function() {
    // xxxxx
})
頁面滾動事件-獲取位置
? scrollLeft和scrollTop (屬性)
  • 獲取被卷去的大小
  • 獲取元素內容往左、往上滾出去看不到的距離
  • 這兩個值是可讀寫
盡量在scroll事件里面獲取被卷去的距離
document.documentElement HTML 文檔返回對象為HTML元素
滾動到指定的坐標
  • scrollTo() 方法可把內容滾動到指定的坐標
  • 語法: 元素.scrollTo(x, y)

頁面尺寸事件

會在窗口尺寸改變的時候觸發(fā)事件:文章來源地址http://www.zghlxwxcb.cn/news/detail-449253.html

window.addEventListener('resize', function() {
    // xxxxx
})
獲取寬高:
  • 獲取元素的可見部分寬高(不包含邊框,margin,滾動條等)
  • clientWidth和clientHeight

元素尺寸于位置

獲取寬高:
  • 獲取元素的自身寬高、包含元素自身設置的寬高、padding、border
  • offsetWidth和offsetHeight
  • 獲取出來的是數(shù)值,方便計算
  • 注意: 獲取的是可視寬高, 如果盒子是隱藏的,獲取的結果是0
l獲取位置:
  • 獲取元素距離自己定位父級元素的左、上距離
  • offsetLeft和offsetTop 注意是只讀屬性
2. element.getBoundingClientRect()
方法返回元素的大小及其相對于視口的位置
JavaScript 基礎 DOM (二)

到了這里,關于JavaScript 基礎 DOM (二)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 探索JavaScript事件流:DOM中的神奇旅程

    探索JavaScript事件流:DOM中的神奇旅程

    ????江城開朗的豌豆 :個人主頁 ????個人專欄? :《 VUE 》?《 javaScript 》 ???生活的理想,就是為了理想的生活?! 目錄 引言 1. 事件流的發(fā)展流程 1.1 傳統(tǒng)的DOM0級事件 1.2 DOM2級事件和addEventListener方法 1.3 W3C DOM3級事件 1.4 React與Virtual DOM 2. 事件流的屬性 2.1 事件捕獲階段

    2024年02月08日
    瀏覽(21)
  • 13-把矩陣看作是對系統(tǒng)的描述

    13-把矩陣看作是對系統(tǒng)的描述

    引言 ?? 在我們進一步探討矩陣乘法之前,讓我們從不同的角度來理解什么是矩陣,以及如何將矩陣視為一個系統(tǒng)。我們之前已經(jīng)介紹了矩陣的基本概念和運算,接下來我們看矩陣的乘法,不過為了讓大家能夠更加深刻的理解什么是矩陣的乘法,這篇會首先向大家介紹我是如

    2024年02月13日
    瀏覽(17)
  • JavaScript【CSS操作、事件處理程序、DOM0級事件處理、DOM2級事件處理、事件類型之鼠標事件、事件流 、Event事件對象、事件類型之鍵盤、事件事件類型之表單】(十三)
  • 前端學習記錄~2023.8.3~JavaScript重難點實例精講~第5章 DOM與事件

    前端學習記錄~2023.8.3~JavaScript重難點實例精講~第5章 DOM與事件

    本章是第五章DOM與事件相關的內容。 DOM是文檔對象模型,全稱為Document Object Model。DOM用一個邏輯樹來表示一個文檔,樹的每個分支終點都是一個節(jié)點,每個節(jié)點都包含著對象。DOM提供了對文檔結構化的表述,通過綁定不同的事件可以改變文檔的結構、樣式和內容,從而能實現(xiàn)

    2024年02月12日
    瀏覽(25)
  • JavaScript 基礎 DOM (二)

    JavaScript 基礎 DOM (二)

    事件流是對事件執(zhí)行過程的描述 事件捕獲 從DOM的根元素開始去執(zhí)行對應的事件 (從外到里) 事件冒泡 當一個元素的事件被觸發(fā)時,同樣的事件將會在該元素的所有祖先元素中依次被觸發(fā)。這一過程被稱為事件冒 泡 addEventListener ?第3個參數(shù)決定了事件是在捕獲階段觸發(fā)還是在

    2024年02月05日
    瀏覽(21)
  • 【JavaScript速成之路】一文帶你掌握DOM基礎

    【JavaScript速成之路】一文帶你掌握DOM基礎

    ??個人主頁:「小楊」的csdn博客 ??系列專欄:【JavaScript速成之路】 ??希望大家多多支持??一起進步呀! 小楊在上一篇帶著大家一起學習了JavaScript中的內置對象,JavaScript基礎的語法就結束了,下面我們將繼續(xù)學習JavaScript中的DOM,希望大家通過閱讀此文快速掌握DOM。 1.

    2023年04月26日
    瀏覽(26)
  • 深入理解JavaScript堆棧、事件循環(huán)、執(zhí)行上下文和作用域以及閉包

    在JavaScript中,內存堆是內存分配的地方,調用棧是代碼執(zhí)行的地方。 原始類型的保存方式:在變量中保存的是值本身,所以原始類型也被稱之為值類型。 對象類型的保存方式:在變量中保存的是對象的“引用”,所以對象類型也被稱之為引用類型。 調用棧理解非常簡單,當

    2024年02月03日
    瀏覽(21)
  • 〖大前端 - 基礎入門三大核心之JS篇?〗- JavaScript 的DOM簡介

    〖大前端 - 基礎入門三大核心之JS篇?〗- JavaScript 的DOM簡介

    說明:該文屬于 大前端全棧架構白寶書專欄, 目前階段免費 , 如需要項目實戰(zhàn)或者是體系化資源,文末名片加V! 作者:不渴望力量的哈士奇(哈哥),十余年工作經(jīng)驗, 從事過全棧研發(fā)、產品經(jīng)理等工作,目前在公司擔任研發(fā)部門CTO。 榮譽: 2022年度博客之星Top4、2023年度超

    2024年02月04日
    瀏覽(25)
  • 【JavaScript】基于querySelector / querySelectorAll對元素的操作,為你的DOM API基礎掃盲~

    【JavaScript】基于querySelector / querySelectorAll對元素的操作,為你的DOM API基礎掃盲~

    目錄 一、通過querySelector / querySelectorAll獲取元素 1.1 單個標簽選中 1.2 多個標簽選中 ?二、基于這組DOM API,對元素進行操作 2.1 innerHTML獲取/修改元素內容 2.2獲取/修改元素屬性 三、單標簽元素屬性的獲取和修改 3.1 value 3.2checked 3.3 type 四、樣式屬性的修改和獲取 4.1 fontSize行內樣

    2024年01月16日
    瀏覽(24)
  • 【hive-design】hive架構詳解:描述了hive架構,hive主要組件的作用、hsql在hive執(zhí)行過程中的底層細節(jié)、hive各組件作用

    【hive-design】hive架構詳解:描述了hive架構,hive主要組件的作用、hsql在hive執(zhí)行過程中的底層細節(jié)、hive各組件作用

    本文主要討論了 描述了hive架構,hive主要組件的作用 詳細描述了hsql在hive執(zhí)行過程中的底層細節(jié) 描述了hive各組件作用 架構圖: 如上圖表達了hive的主要組件和以及與hadoop的交互: 主要的hive組件: UI :用戶提交接口,用于用戶提交查詢和其他操作等。 Driver :接收查詢的組件

    2024年02月04日
    瀏覽(92)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包