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

JS監(jiān)聽元素dom變化方案詳解

 更新時(shí)間:2023年09月10日 15:20:25   作者:前端小小白zyw  
這篇文章主要給大家介紹了關(guān)于JS監(jiān)聽元素dom變化的相關(guān)資料,監(jiān)聽DOM大小的變化,在前端開發(fā)中,算是一個(gè)比較常見的需求,比如我們要制作可伸縮的圖表的時(shí)候,可能需要根據(jù)DOM大小的變化,進(jìn)行動(dòng)態(tài)的更新圖表,需要的朋友可以參考下

前言

我們?cè)陂_發(fā)中,會(huì)遇到一些需求,需要監(jiān)聽元素變化,比如元素屬性變化,元素大小變化,今天,我們就來聊聊倆種常用實(shí)現(xiàn)監(jiān)聽的方案,其他的自行研究

一、ResizeObserver

ResizeObserver 是來監(jiān)聽元素的大小位置發(fā)生變化,也可以說是回流(重排)時(shí)的變化

<div style="width: 100vw; height: 100vh; background-color: deepskyblue" id="bg">

然后,我們創(chuàng)建監(jiān)聽器,進(jìn)行監(jiān)聽

// 觀察元素變化
let el = document.getElementById('bg')
// 創(chuàng)建監(jiān)聽器
let ob = new ResizeObserver(entries => {
  for (let entry of entries) {
    // 監(jiān)聽到的元素
    console.log(entry)
  }
})
// 監(jiān)聽尺寸變化
ob.observe(el)

隨之,拖動(dòng)瀏覽器窗口,控制臺(tái)會(huì)打印,我們可以看到打印的日志,包含元素的大小信息

在使用完畢時(shí),可以進(jìn)行監(jiān)聽結(jié)束

ob.unobserve(el)

二、MutationObserver

MutationObserver 是用來監(jiān)聽DOM樹的修改,MutationObserver可以監(jiān)聽的屬性(配置)

屬性名詳情默認(rèn)值
attributes設(shè)為 true 以觀察受監(jiān)視元素的屬性值變更false
attributeFilter要監(jiān)視的特定屬性名稱的數(shù)組。如果未包含此屬性,則對(duì)所有屬性的更改都會(huì)觸發(fā)變動(dòng)通知
characterData設(shè)為 true 以監(jiān)視指定目標(biāo)節(jié)點(diǎn)或子節(jié)點(diǎn)樹中節(jié)點(diǎn)所包含的字符數(shù)據(jù)的變化
childList設(shè)為 true 以監(jiān)視目標(biāo)節(jié)點(diǎn)(如果 subtree 為 true,則包含子孫節(jié)點(diǎn))添加或刪除新的子節(jié)點(diǎn)false
subtree其他值也會(huì)作用于此子樹下的所有節(jié)點(diǎn),而不僅僅只作用于目標(biāo)節(jié)點(diǎn)false

實(shí)現(xiàn)過程:

// 創(chuàng)建監(jiān)聽器
let ob = new MutationObserver(entries => {
  console.log(entries)
})
// 監(jiān)聽元素變化
ob.observe(el, { attributes: true, subtree: true })
// 修改背景顏色
el.style.backgroundColor = 'red'

我們可以看到控制臺(tái),打印日志,觸發(fā)更新:

取消監(jiān)聽:

ob.disconnect()

總結(jié) 

到此這篇關(guān)于JS監(jiān)聽元素dom變化的文章就介紹到這了,更多相關(guān)JS監(jiān)聽元素dom內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • javascript函數(shù)庫(kù)-集合框架

    javascript函數(shù)庫(kù)-集合框架

    javascript函數(shù)庫(kù)-集合框架...
    2007-04-04
  • JS創(chuàng)建或填充任意長(zhǎng)度數(shù)組的小技巧匯總

    JS創(chuàng)建或填充任意長(zhǎng)度數(shù)組的小技巧匯總

    在JavaScript 中,我們往往會(huì)遇到需要使用某些默認(rèn)值來填充數(shù)組的情況,那么都有哪些方式可以完成這樣的任務(wù)呢?這篇文章主要給大家介紹了關(guān)于JS創(chuàng)建或填充任意長(zhǎng)度數(shù)組的小技巧,需要的朋友可以參考下
    2021-10-10
  • JS實(shí)現(xiàn)將Asp.Net的DateTime Json類型轉(zhuǎn)換為標(biāo)準(zhǔn)時(shí)間的方法

    JS實(shí)現(xiàn)將Asp.Net的DateTime Json類型轉(zhuǎn)換為標(biāo)準(zhǔn)時(shí)間的方法

    這篇文章主要介紹了JS實(shí)現(xiàn)將Asp.Net的DateTime Json類型轉(zhuǎn)換為標(biāo)準(zhǔn)時(shí)間的方法,涉及javascript針對(duì)時(shí)間與日期操作的相關(guān)技巧,需要的朋友可以參考下
    2016-08-08
  • 一文解析JS如何準(zhǔn)確獲取對(duì)象自身的屬性

    一文解析JS如何準(zhǔn)確獲取對(duì)象自身的屬性

    在 JavaScript 開發(fā)中,我們經(jīng)常需要遍歷對(duì)象的屬性,本文將深入講解如何準(zhǔn)確獲取對(duì)象非原型鏈上的屬性(即“自身屬性”),并結(jié)合你提供的代碼,給出最佳實(shí)踐,有需要的可以了解下
    2025-09-09
  • JavaScript圖片打印方案實(shí)例詳解

    JavaScript圖片打印方案實(shí)例詳解

    有時(shí)候我們希望文件上傳的時(shí)候預(yù)覽圖片,下面這篇文章主要給大家介紹了關(guān)于JavaScript圖片打印方案的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • JavaScript數(shù)據(jù)類型轉(zhuǎn)換的注意事項(xiàng)

    JavaScript數(shù)據(jù)類型轉(zhuǎn)換的注意事項(xiàng)

    JavaScript是一種無類型語言,但同時(shí)JavaScript提供了一種靈活的自動(dòng)類型轉(zhuǎn)換的處理方式?;疽?guī)則是,如果某個(gè)類型的值用于需要其他類型的值的環(huán)境中,JavaScript就自動(dòng)將這個(gè)值轉(zhuǎn)換成所需要的類型。
    2016-07-07
  • js完整倒計(jì)時(shí)代碼分享

    js完整倒計(jì)時(shí)代碼分享

    這篇文章主要為大家詳細(xì)介紹了js完整倒計(jì)時(shí)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • javascript格式化指定日期對(duì)象的方法

    javascript格式化指定日期對(duì)象的方法

    這篇文章主要介紹了javascript格式化指定日期對(duì)象的方法,涉及javascript針對(duì)日期對(duì)象操作的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • 高性能js數(shù)組去重(12種方法,史上最全)

    高性能js數(shù)組去重(12種方法,史上最全)

    數(shù)組去重,一般都是在面試的時(shí)候才會(huì)碰到,一般是要求手寫數(shù)組去重方法的代碼。如果是被提問到,數(shù)組去重的方法有哪些?你能答出其中的10種,面試官很有可能對(duì)你刮目相看
    2019-12-12
  • 詳解JS中你不知道的各種循環(huán)測(cè)速

    詳解JS中你不知道的各種循環(huán)測(cè)速

    在前端JS中,有著多種數(shù)組循環(huán)的方式:for循環(huán);while和do-while 循環(huán);forEach、map、reduce、filter循環(huán);for-of循環(huán);for-in 循環(huán);那么哪種循環(huán)的執(zhí)行速度最快呢,我們今天來看一看。
    2021-05-05

最新評(píng)論

中江县| 宁远县| 桐乡市| 夏邑县| 威远县| 神池县| 景宁| 潮安县| 潜山县| 文登市| 龙游县| 衡阳县| 固原市| 澄城县| 玉溪市| 辽宁省| 关岭| 长岛县| SHOW| 临西县| 榆中县| 金湖县| 阳春市| 万宁市| 鹿泉市| 临清市| 湄潭县| 巴里| 马尔康县| 武夷山市| 浮梁县| 仲巴县| 神农架林区| 大英县| 丹巴县| 宁波市| 南京市| 黑山县| 肃宁县| 行唐县| 通江县|