捕获内部div中的滚动

时间:2011-06-16 10:15:26

标签: javascript html css

我想要实现的是这个,想象你有一个高大的页面里面有几个div 高页面本身是可滚动的,div也是。

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

div不是动态生成的,因此我可以对所有内容进行硬编码。

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

//编辑: 可以在http://gnur.nl/demo.html发现一个小例子 此演示的预期行为是,当您在培根div中滚动时,整个页面永远不会滚动。

1 个答案:

答案 0 :(得分: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);
};

在DIV上使用onmouseoveronmouseout来阻止它。