用于检测元素位置何时更改的jQuery事件

Ste*_*orn 27 javascript jquery events javascript-events

我想知道是否有一个jQuery事件,我可以用它来确定特定DIV的top属性何时发生了变化.

例如,我在DIV之上有隐形内容.当该内容变得可见时,DIV向下移动.我想捕获该事件,然后使用该offset()函数来获取X/Y坐标.

jos*_*rry 8

简单的答案是DOM中没有用于检测布局更新的事件.

你看到它的方式有两个选择:

  1. 投票,讨厌,但它可能会有效,具体取决于您的更新频率要求.

  2. 点击任何导致隐形DIV改变大小的事件,并在该处理程序中执行您需要做的任何事情


我会纠正自己.

我看了一下DOM并注意到DOMAttrModified事件并找到了这个JQuery Plug-In,你可以利用它来做你想做的事情.

正如文章所提到的,它在IE和Firefox中运行良好但似乎在WebKit中存在问题.


Str*_*lok 1

我认为你应该能够做到:

$(document).ready( function (){
  $("#mydiv").bind("movestart", function (){ ...remember start position... });
  $("#mydiv").bind("moveend", function (){ ...calculate offsets etc... });
});
Run Code Online (Sandbox Code Playgroud)

  • 这些“movestart”和“moveend”事件是什么?https://plugins.jquery.com/event.move/?在这种情况下,这些事件似乎与触摸和鼠标移动有关,不一定与任意元素位置变化有关。 (3认同)