2008-12-10 49 views
25

我想知道是否有一個jQuery事件,我可以用它來確定何時一個特定的DIV的top屬性已更改。jQuery事件來檢測元素位置變化

例如,我有一個不可見的內容高於DIV。當內容變得可見時,DIV向下移動。我想捕獲該事件,然後使用offset()函數獲取X/Y座標。

+2

您是否曾經找到過解決方案? – 2011-02-11 15:53:14

+1

@Sam Dutton - 不,我的解決方案是重新考慮一些頁面佈局和結構。事情變得太複雜了。 – 2011-02-16 14:02:06

回答

0

我thiiink你應該能夠做到:

$(document).ready(function(){ 
    $("#mydiv").bind("movestart", function(){ ...remember start position... }); 
    $("#mydiv").bind("moveend", function(){ ...calculate offsets etc... }); 
}); 
+0

另一個想法是,這可能不適用於相對定位的元素 – Strelok 2008-12-10 03:51:09

+2

這些`movestart`和`moveend`事件是什麼? https://plugins.jquery.com/event.move/?在那種情況下,看起來這些事件與觸摸和鼠標移動有關,不一定是任意的元素位置改變。 – Abdull 2014-02-06 19:08:15

6

最簡單的答案是,有DOM中的任何事件檢測佈局更新。

你有幾個選項,我看到它的方式:

  1. 投票,討厭的,但它可能取決於您的更新頻率要求工作。

  2. 挖掘到任何事件導致無形的DIV來改變大小,做任何你需要在該處理程序做


我會糾正自己。

我看了一下DOM,發現DOMAttrModified事件,發現這個JQuery Plug-In,你可以利用它來做你想做的事情。

正如文章中提到的,它在IE和Firefox中運行良好,但在WebKit中似乎存在問題。

-2
$("#someId").resize(function() { 

// your code 

});