為什麼jquery的resize方法監聽一個元素不生效?
07-02
代碼如下:
$(#content).resize(function(){ debugger})
當content元素的高改變時進不去這個方法,為什麼咧?
因為 DOM 元素尺寸變化不會觸發 resize
事件。
直到 Chrome 64 才有了真正可以監聽元素尺寸變化的 ResizeObserver
,在這之前只能用各種不完美的 hack 去模擬,都有無法覆蓋的場景和副作用。
我之前基於 sdecima/javascript-detect-element-resize
改造了一個用了多種降級方案的版本,見 Justineo/resize-detector
,可以嘗試一下。(README 里還有對現有多個方案的詳細比較)
建議還是多看文檔,理解真正的意思。
不要拿函數的名字當成自己的理解。resize 的意思是調整大小沒錯,但是這個函數在定義的時候,就只是監聽瀏覽器窗口的。如果當時命名成 windowResize 那題主是不是就沒這個疑問了?
不知道題主能不能理解我想表達的意思。
瀉藥。
--------------------- 我是小白,答案僅供參考 ----------------------------------------------------
resize()方法:當調整瀏覽器窗口的大小時,發生 resize 事件。
本質應該是調用了js的onresize事件(在窗口或框架被調整大小時發生),改事件支持的JavaScript對象只有window
jquery 監聽div大小變化函數|div resize事件?www.itshij.com
當調整瀏覽器窗口的大小時,發生 resize 事件。div的size發生了變化,但是window的size並沒有改變。 所以無效。其他人的解決方法。https://www.cnblogs.com/zhtui/p/7059943.html
推薦閱讀:
※細說JS的類型判斷
※有沒有推薦設UI計師學的代碼,例如xcode,JQ等輕體量上手快的IDE,主要為了實現動效和前端對接?
※React路由原生js來實現
※有 C/C++ 的基礎,可以直接學習 jQuery 嗎?
※類似於有道詞典的屏幕取詞功能可以用jQuery 實現嗎?