2013-07-26 38 views
1

如何實現以下功能?當滾動條到達特定點時,我需要向上滾動一定量的像素?想要反向滾動行爲

用JS/jQuery不太好,也許把滾動事件綁定到文檔,但真的不知道如何實現這一點。

這是我有什麼,但它不工作:

$(document).bind('scroll',function(e){ 

      if (
        $(this).offset().top > 3000) 
      { 
       $.scrollTo('-800px', 800, { axis:'y' }); 
      } 

    }); 

回答

1

嘗試用document.body.clientHeight比較document.body.scrollTop。如果它達到你想要的點,使用scrollBy()的方法上去一些像素。

編輯更新後: 您正在混合scrollTo(滾動到頁面上的絕對位置)和scrollBy(從當前滾動位置向上或向下滾動)。此外,這些都沒有jQuery方法,所以使用它們不需要$.

編輯2: 您不能使用offset()作爲滾動位置。它只能獲得頁面上元素的位置。

這裏有一個工作示例:

$(document).bind('scroll', function(){ 
    if (document.body.scrollTop > 3000) { 
     scrollBy(0, -800); 
    } 
});