2013-08-06 18 views
0

如何根據窗口當前滾動位置找到最近的HTML片段標識符(hashtag href)?尋找最近的HTML片段標識符以使用jQuery滾動位置

我想要通過JS/jQuery的一個書籤功能,抓住最近的部分用戶被擊中的書籤按鈕時英寸我沒有訪問後端,所以我不能添加任何鉤子/隱藏字段,但這應該不重要,因爲我的鉤子的片段ID

我想jQuery的.scroll()處理器可以使用的,但我不知道如何找到「DOM內容在給定滾動位置」知道,如果一個新的標識已經出現。或者,如果這是最好的辦法...

想法?

+0

Downvote解釋請嗎? – dooleyo

回答

2

類似的東西:

$('a [href]').filter(function() { 
    var docViewTop = $(window).scrollTop(); 
    var docViewBottom = docViewTop + $(window).height(); 

    var elemTop = $(this).offset().top; 
    var elemBottom = elemTop + $(this).height(); 

    return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop)); 
}) 
.first(); 
+0

基於:http://stackoverflow.com/questions/487073/check-if-element-is-visible-after-scrolling –

+0

謝謝阿圖爾。雖然我找到了一個更好的方法來處理我的情況(我將其添加爲另一個答案),但這在技術上是對我原始問題的正確答案。 – dooleyo

0

我挺不理解你的問題,但使用jQuery做的事情滾動,你可以試試這個。

$(document).ready(function(){ 
    $(window).scroll(function(){ 
     if ($(window).scrollTop() > 100){ 
      /*you check if identifier has appeared here*/ 
     } 
    }); 
}); 
1

雖然不是技術上的答案,我原來的問題,這是更靈活的解決方案,我決定使用:

當用戶點擊「書籤」 jQuery將存儲帶有虛擬查詢字符串的頁面url,其中的X是當前值$('body').scrollTop()

當用戶想要重新訪問他的書籤時,存儲的URL將被加載,插入的jQuery將檢索pos值並將頁面滾動到書籤位置。

這是理想的,因爲它確實把用戶的右後衛,他/她離開,下至像素。