在元素大小調整事件上監聽的最佳做法應該是什麼?如何檢測HTML5中任何元素的大小調整
我想重新定位一個元素(jQuery對話框在我的情況下),一旦它的大小發生了變化。但我現在更感興趣的是以一般的方式來傾聽重新調整大小的事件,而不知道調整大小如何發生。它假設是簡單的,直到我發現了一個元素可以通過
被調整- 窗口調整
- 內容的文字改變
- 子元素或他們的子元素調整
- 一個兄弟元素調整大小(例如,表格單元格)
- 的JavaScript改變它SRC(IMG)的/ style屬性直接(或它的孩子)
- 的JavaScript重寫CSS規則或樣式表
- 本地調整大小功能的textarea或CSS3 resize
- 瀏覽器的縮放或文本放大
- CSS過渡或動畫(按:懸停或任何其他意思)
在事實上的標準,有一個事件window.onresize
訂閱窗口/框架上的大小。 但是HTML內容或DOM元素沒有標準事件。
我遇到了如下思考
- DOM Level 3活動的目標只在窗口/文件類型
- IE具有onresize的元素,但它是IE唯一實現
- MutationObserver其取代Mutation Events,但它確實不適合「onresize」的需要
- naive JavaScript polling
MutationObserver關閉(內部DOM更改),但它不(但)跨瀏覽器(IE10不支持),它會產生噪音,而不是CSS感知。
一個樸素的JavaScript輪詢應該在所有情況下都能正常工作,但它會產生延遲或CPU浪費許多輪詢。
我發帖說做這個庫的概述在http://stackoverflow.com/q/37113134/1026 – Nickolay 2016-05-13 01:06:56