2010-09-13 83 views
2

我在瞭解如何使頁面的滾動條滾動頁面的溢出內容而不是滾動頁面到頁面的一些信息後某一點。將頁面滾動到某個點,然後開始使用一個滾動條滾動div的溢出內容

最終結果是將頁面滾動到頭部不再可見的程度,但從此處向前滾動div的內容 - 使用主滾動條而不是兩個嵌套滾動條。

如果用戶再次向上滾動,以使div內容再次位於頂部,則頁面應該繼續滾動並再次顯示標題。

+0

看一看的document.body.scrollTop和window.pageYOffset – mplungjan 2010-09-13 11:55:27

回答

1

你可以使用你的元素的scrollTop property做到這一點。首先你需要確定你的頭端(點滾動的窗口):

var header = $('#header'); 
var headerBottom = header.offset().top + header.height(); 

然後,你可以在你的窗口的滾動條動畫到這個位置:

$(window).animate({scrollTop: headerBottom}); 

一旦被送往照管,然後您會得到您想要的任何元素的引用,然後滾動並動畫它的scrollTop位置(與上面的片段相同的代碼滾動window)。

最後,你需要一個scroll event handler所以你可以決定什麼時候是時候改變哪個元素你被滾動的內容:

$(window).scroll(function(){ 
    // logic to determine which element should be scrolling 
});  
+0

謝謝。我不認爲我解釋得很好。我真正追求的是'$(window).scroll()'處理程序中的內容,以停止滾動頁面,而是開始滾動div。 – 2010-09-13 13:06:07

+0

基於你已經得到的東西,我可以計算出如何確定何時停止滾動頁面,但是它將滾動操作從頁面轉移到了阻止我的div。 – 2010-09-13 13:06:39

+0

下面是一個簡單的例子,顯示窗口滾動,然後onComplete,div滾動:http://jsfiddle.net/TnksT/ – Pat 2010-09-13 13:19:41