Javascript 检测HTML元素的回流或移动?
我构建了一个UI小部件,在实际小部件下面显示一个浮动弹出窗口。它使用绝对定位将自身定位在小部件下方。我所关心的是,当文档布局稍有变化时,绝对定位的元素不在我的UI小部件下面Javascript 检测HTML元素的回流或移动?,javascript,html,css,dom,Javascript,Html,Css,Dom,我构建了一个UI小部件,在实际小部件下面显示一个浮动弹出窗口。它使用绝对定位将自身定位在小部件下方。我所关心的是,当文档布局稍有变化时,绝对定位的元素不在我的UI小部件下面 有没有办法检测HTML元素是否移动或回流?使用相对定位并将小部件连接到实际的小部件上如何?这样,它将始终保持相对于原始小部件的相同位置。您可以将元素附加到body标记,并根据鼠标的位置将其放置在页面上。这就是jQueryUI对话框和工具提示类型脚本等如何绕过z索引问题的方法 如果您有jQuery,可以这样做: $('#cli
有没有办法检测HTML元素是否移动或回流?使用相对定位并将小部件连接到实际的小部件上如何?这样,它将始终保持相对于原始小部件的相同位置。您可以将元素附加到body标记,并根据鼠标的位置将其放置在页面上。这就是jQueryUI对话框和工具提示类型脚本等如何绕过z索引问题的方法 如果您有jQuery,可以这样做:
$('#clickelement').click(function(e){
$('#yourlayer').appendTo('body').css({left: e.pageX + 'px',top: (e.pageY + 12) + 'px',zIndex:'10001'}).show();
});
#yourlayer{
display:none;
position:absolute;
width:300px;
}
编辑:修复了小的打字错误我找到了一个可接受的解决方案
无论何时显示浮动弹出窗口,我都会创建一个间隔,每隔250毫秒运行一次,再次计算其位置(如果父对象的位置已更改)。当弹出窗口隐藏或关闭时,我会结束计时器。我也这么认为,但我需要弹出窗口保持在页面上其他所有元素的顶部。。。z-index不适用于相对定位。我刚刚意识到,如果您指的是由于实时调整大小/回流而导致的回流,那么这将没有帮助。也许您可以获得容器元素的底部位置,并使用它来定位层。我以前从未尝试过,所以我不确定它是否可行。在Firefox中,您可能希望尝试更好的性能这是我们最初都得到的直观解决方案。我的问题与您的问题相同,但不想使用此解决方案,因为它的性能不好。