2011-06-16 118 views
3

我想要实现的是这个,想象一下你有一个高分页的几个div。
高大的页面本身是可滚动的,divs也是。内部div中的捕获滚动

我想要实现的目的是防止在将div移动到极限时滚动整个页面。
现在发生的事情是,当你通过滚动凶猛地到达div的末尾时,你开始滚动整个页面。我想阻止滚动整个页面,因为这是用于私人项目,底部的项目很少被使用。

该div不是动态生成的,所以我可以硬编码一切。

如果有可能,我真的很想避免使用jQuery,因为在这种情况下看起来有点矫枉过正。

//编辑: 一个小例子可以在http://gnur.nl/demo.html
发现这个演示的预期行为是整个页面,当你的腊肉DIV内滚动从未滚动。

+0

这是具有溢出的div的正常行为:自动或溢出:滚动设置,至少对于桌面浏览器。所以你显然想要做更复杂的事情。但是什么? – chrisdowney 2011-06-16 11:07:27

+0

你能演示一个演示吗?没有演示,很难分析发生了什么? – 2011-06-16 10:21:09

回答

0

恐怕这是一个败仗,滚动事件不会看起来是取消:

http://www.w3.org/TR/DOM-Level-3-Events/#event-type-scroll

,也可以与绝望的黑客向后滚动滚动进行的像素量:

var lastPos = isNaN(window.pageYOffset) ? 
    document.documentElement.scrollTop : 
    window.pageYOffset; 

window.onscroll = function(ev){ 
    var diff = (isNaN(window.pageYOffset) ? 
    document.documentElement.scrollTop : 
    window.pageYOffset) - lastPos; 
    window.scrollBy(0, -diff); 
}; 

而且使用onmouseoveronmouseout过的DIV,以防止这一点。