Javascript 如何侦听特定HTML元素上的布局更改?

Javascript 如何侦听特定HTML元素上的布局更改?,javascript,html,css,layout,reflow,Javascript,Html,Css,Layout,Reflow,在现代浏览器中监听布局变化的一些技巧是什么窗口。调整大小不起作用,因为它仅在整个窗口调整大小时触发,而不是在内容更改导致回流时触发 具体来说,我想知道什么时候: 元素的可用宽度将更改 元素的流入子元素消耗的总高度会发生变化 没有本机事件可用于此连接。您需要设置计时器并在自己的代码中轮询此元素的维度 这是基本版本。它每100毫秒进行一次投票。我不知道你想怎么检查孩子们的身高。这假设他们只会把包装纸弄得更高 var origHeight = 0; var origWidth = 0; var ti

在现代浏览器中监听布局变化的一些技巧是什么<代码>窗口。调整大小不起作用,因为它仅在整个窗口调整大小时触发,而不是在内容更改导致回流时触发

具体来说,我想知道什么时候:

  • 元素的可用宽度将更改
  • 元素的流入子元素消耗的总高度会发生变化

没有本机事件可用于此连接。您需要设置计时器并在自己的代码中轮询此元素的维度

这是基本版本。它每100毫秒进行一次投票。我不知道你想怎么检查孩子们的身高。这假设他们只会把包装纸弄得更高

var origHeight = 0;
var origWidth = 0;
var timer1;

function testSize() {
     var $target = $('#target')     
     if(origHeight==0) {
         origWidth = $target.outerWidth();
         origHeight = $target.outerHeight();

     }
     else {
         if(origWidth != $target.outerWidth() || origHeight = $target.outerHeight()) {
             alert("change");  
         }
         origWidth = $target.outerWidth();
         origHeight = $target.outerHeight();
         timer1= window.setTimeout(function(){ testSize() }),100)
     } 

}
从一个类似的问题来看,有一个例子就是这样的。该插件使用与Diodeus的答案中概述的相同的轮询方法

插件页面中的示例:

// Well, try this on for size!
$("#unicorns").resize(function(e){
  // do something when #unicorns element resizes
});

你是想自己做这件事还是你有一个图书馆可供你使用?如果您有jQuery,您可能想检查一下当您更改内容时是否可以触发事件?谢谢,Ktash和Allan。想贴些例子吗?我更愿意接受带有工作代码的答案。谢谢,迪奥多斯。环顾四周,我认为情况确实如此,但我正在寻找实现这一点的技术。想发布一个示例吗?您更喜欢jQuery示例吗?