<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
ResizeObserver
用於監聽元素的大小尺寸變化,常見用於監聽自適應大小的元素變化引起的寬高變化時處理應寬高變化而需要 JS
做特定處理的場景。
說下我自己使用中遇到的三個場景:
Tabs
元件的頭部區域在超過寬度/高度時需要展示出超出捲動按鈕Table
元件橫向捲動如果存在某幾列資料需要固定展示的情況下需要根據寬度來計算是否需要出現卷軸和捲動體室陰影可以看出上面幾個場景共性:當樣式需要自適應寬高,而指令碼又需要按照元素寬高來執行某些操作時。這些場景使用 ResizeObserver
就可以比較方便的進行處理。
使用 ResizeObserver
第一步同樣是先需要範例化一個 observer
,第二步便是使用 observer
的 observe
將需要監聽的元素新增到監視列表中:
const observer = new ResizeObserver((entries, observer) => { entries.forEach(entry => { console.log(entry); }); }); observer.observe(target);
範例化時只需要接受一個引數:尺寸變化時的回撥,回撥函數中的 entries
則是所有新增到監視列表中的元素的 entry
資訊列表,而 observer
同樣是上面範例化的 observer
的參照。
Script
const observer = new ResizeObserver(entries => { entries.forEach(entry => { console.log(entry); }) }) observer.observe(document.getElementById('target'));
entry
中包括以下五個屬性:
borderBoxSize
: 監聽元素的 borderBox
尺寸contentBoxSize
: 監聽元素的 contentBox
尺寸devicePixelContentBoxSize
: 監聽元素的 contentBox
尺寸,不過是裝置畫素維度,而不是展示維度contentRect
: 監聽元素的 contentRect
資訊,同 getClientRects
target
: entry
所屬的監聽元素borderBox
和 contentBox
就是我們常說的 CSS
盒模型中的 borderBox
和 contentBox
,entry
中的 borderBoxSize
和 contentBoxSize
中包含兩個屬性:blockSize
和 inlineSize
,這兩個屬性的值與頁面元素的 writing-mode
相關,預設情況下 blockSize
為縱向尺寸一般為高度,inlineSize
為橫向尺寸一般為寬度。而當書寫模式為縱向時,blockSize
、inlineSize
的縱橫向關係會調換。
而 devicePixelContentBoxSize
則和裝置畫素比相關,在移動裝置或是高解析度螢幕中會與 CSS
畫素存在差異。
除了 observe
外,observer
還提供了 unobserve
來解除某個元素的監聽,或直接呼叫 disconnect
來關閉對所有元素的監聽。
ResizeObserver
的相容性較差,一般情況下推薦需要使用 polyfill
來進行補全:
chrome
64edge
79firefox
69safari
13.1ie
不支援常用的 polyfill
:www.npmjs.com/package/res…
以上就是ResizeObserver 監視 DOM大小變化範例詳解的詳細內容,更多關於ResizeObserver 監視 DOM 的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45