2013-02-11 98 views
0

我希望能夠通過jQuery設置滾動點,以便當用戶滾動到頁面頂部的某個部分時,會觸發一個函數。我在下面的方式做到了這一點 - 但訪問當前已滾動到jQuery中的元素

var target = $("section").offset().top; 
var interval = setInterval(function() { 
    if ($(window).scrollTop() >= target) { 
     alert("test"); 
     clearInterval(interval); 
    } 
}, 250); 

這工作,我有警報(「測試」),我希望能夠訪問當前已經滾動到這樣我就可以獲取數據元素從它的html,即如果用戶滾動到#section2的頂部,我可以在那裏訪問它,並從那裏進步,因爲不同的部分需要觸發不同的功能。任何幫助非常感謝

+0

您是否嘗試在某處設置[scroll](http://api.jquery.com/scroll/)事件代理(例如窗口,文檔,主體)並查看事件是否給您有關滾動元素的信息? – 2013-02-11 00:40:04

+0

我想我現在意識到爲什麼它不起作用。正如ozk所說,它似乎只是獲得了第一部分元素。我可以做的是首先獲取每個節元素的所有頂部位置,並將它們放入數組中,然後每次用戶滾動時都會檢查這個數組,看看他們是否已經達到這些點中的任何一個並激發相關函數如果是這樣。 – user1468867 2013-02-11 23:58:10

回答

0

你的元素本質上是第一個$("section")。 jQuery中的offset()方法僅返回第一個匹配元素的偏移量。 from the docs

獲取當前座標的第一個元素,或一組的每一個元素的座標,在所述一組匹配的元素,相對於文檔的