Javascript 如何防止鼠标在悬停元素外滚动?

Javascript 如何防止鼠标在悬停元素外滚动?,javascript,html,css,scroll,hover,Javascript,Html,Css,Scroll,Hover,我有一个div设置为overflow:scroll;。我得到了我想要的滚动条。但是,当使用鼠标滚轮滚动div时,当到达div内容的顶部或底部时,它会滚动页面的其余部分 如何根据悬停的内容仅滚动div或整个页面?在这种情况下,我认为您必须覆盖body的默认onscroll事件。在处理程序中,您需要手动滚动div的内容。如果鼠标在div的范围内,您可以测试鼠标位置并取消文档的滚动事件。首先,我认为您不能覆盖滚动事件。这就是我要做的。我不知道jquery,但这里有一些简单的javascript doc

我有一个div设置为overflow:scroll;。我得到了我想要的滚动条。但是,当使用鼠标滚轮滚动div时,当到达div内容的顶部或底部时,它会滚动页面的其余部分


如何根据悬停的内容仅滚动div或整个页面?

在这种情况下,我认为您必须覆盖body的默认onscroll事件。在处理程序中,您需要手动滚动div的内容。

如果鼠标在div的范围内,您可以测试鼠标位置并取消文档的滚动事件。

首先,我认为您不能覆盖滚动事件。这就是我要做的。我不知道jquery,但这里有一些简单的javascript

document.getElementById('scrollDiv').onmouseover=function(){
  document.getElementByTagName('body')[0].style.overflow='hidden';
}
document.getElementById('scrollDiv').onmouseout=function(){
  document.getElementByTagName('body')[0].style.overflow='';
}

显然你可以稍微调整一下,但这是基本的想法。此外,如果您需要,您还可以执行其他测试用例。比如,如果div有焦点,那么就做同样的事情。取决于您的设置。

听起来不错,谢谢,但我该怎么做呢?您可以编写一些jquery代码示例吗?overflow:hidden的问题是,它通常会将页面向后滚动到顶部,这可能会让人困惑。为什么不使用onscroll侦听器来冻结页面的滚动高度?