Javascript 用于在元素位置更改时检测的jQuery事件
我想知道是否有一个jQuery事件,我可以用来确定某个特定DIV的Javascript 用于在元素位置更改时检测的jQuery事件,javascript,jquery,events,javascript-events,Javascript,Jquery,Events,Javascript Events,我想知道是否有一个jQuery事件,我可以用来确定某个特定DIV的top属性何时发生了更改 例如,我有一个DIV上面的不可见内容。当该内容变为可见时,DIV向下移动。我希望捕获该事件,然后使用offset()函数获取X/Y坐标。我认为您应该能够执行以下操作: $(document).ready( function (){ $("#mydiv").bind("movestart", function (){ ...remember start position... }); $("#myd
top
属性何时发生了更改
例如,我有一个DIV上面的不可见内容。当该内容变为可见时,DIV向下移动。我希望捕获该事件,然后使用
offset()
函数获取X/Y坐标。我认为您应该能够执行以下操作:
$(document).ready( function (){
$("#mydiv").bind("movestart", function (){ ...remember start position... });
$("#mydiv").bind("moveend", function (){ ...calculate offsets etc... });
});
简单的答案是DOM中没有用于检测布局更新的事件 在我看来,你有几个选择:
我会改正的 我查看了DOM并注意到DOMAttrModified事件,发现您可以利用它来做您想做的事情
正如文章所提到的,它在IE和Firefox中工作得很好,但在WebKit中似乎有问题。另一方面,对于相对定位的元素来说,这可能是不可能的。这些
movestart
和moveend
事件是什么?在这种情况下,这些事件似乎与触摸和鼠标移动有关,而不一定是任意元素位置的变化。我不认为链接到的插件将适用于OP的情况。据我所知,DOMAttrModified事件仅在脚本更改属性时触发,而不是在OP所指的更改之后触发。但是,propertychange事件(我认为)在这两种情况下都会触发:注意Rick的解决方案也使用轮询,这意味着你基本上要在看起来平滑和不必要地消耗CPU之间进行权衡。你有没有找到解决方案?@Sam Dutton-没有。我的解决方案是重新考虑一些页面布局和结构。事情变得太复杂了,这没用。
$("#someId").resize(function () {
// your code
});