2010-09-13 87 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