javascript - 在内部 div 中捕获滚动

标签 javascript html css

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

我想实现的是在滚动div到极限时防止滚动整个页面。
现在发生的情况是,当您通过猛烈滚动到达 div 的末尾时,您开始滚动整个页面。我想防止滚动整个页面,因为这是一个私有(private)元素,底部的元素很少被使用。

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

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

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

最佳答案

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

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 来阻止或不阻止它。

关于javascript - 在内部 div 中捕获滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6370276/

相关文章:

javascript - 使用 CSS 和 JS 更改调试悬停状态的最佳方法

html - V 对齐顶部在 TD 内不起作用

html - 如何声明输入框的内半径

javascript - 告诉 iframe 何时位于新 URL 上

c# - 在表格单元格中叠加两张图片

javascript - 如何在 ng-repeat 表中查找单选按钮值?

php - 在 javascript 或 jquery 中是否有等同于 PHP array_key_exists

javascript - 使用 Javascript 显示和隐藏 div

javascript - 使用 jquery 获取文本框值

Eclipse 无法处理 CSS3 动画