捕获内部分区中的滚动

capture scroll in inner div

本文关键字:滚动 分区 内部      更新时间:2023-09-26

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

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

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

如果可能的话,我真的希望避免使用jQuery,因为在这种情况下,这似乎有点过头了。

//编辑:一个小例子可以在http://gnur.nl/demo.html
这个演示的预期行为是,当你在培根分区内滚动时,整个页面永远不会滚动。

恐怕这是一场失败的战斗,滚动事件看起来不可取消:

http://www.w3.org/TR/DOM-Level-3-Events/#event-类型滚动

或者可能是用一个绝望的黑客来滚动回滚动的像素数量:

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上使用CCD_ 1和CCD_。