当鼠标悬停在 iframe 上时,我想禁用主页上的滚动,但不在 iframe 内。你可以在这里更清楚地看到我的意思。
如果 iframe 正在拾取鼠标滚轮事件,那么当鼠标在 iframe 内时,我不希望整个页面向下滚动。请注意,它在 chrome 中工作,而不是在 ff 中。
编辑:键盘组件甚至可以按预期工作!
笔记:
滚动启用/禁用基于此处的代码
更简单的解决方案:
给你的父体一个 id ("bodyID"
在例子中),然后在你的启用和禁用滚动功能中添加:
function disable_scroll()
{
document.getElementById("bodyID").style.overflow="hidden";
}
function enable_scroll()
{
document.getElementById("bodyID").style.overflow="auto";
}
基本上,由于您不希望父页面滚动,而不是针对单个事件,只需在光标位于iframe
. 简单,跨浏览器,更直接。
事实上,您可以消除 90% 的代码,而只需使用
function disable_scroll()
{
document.getElementById("bodyID").style.overflow="hidden";
}
function enable_scroll()
{
document.getElementById("bodyID").style.overflow="auto";
}
document.getElementById("miframe").onmouseenter = disable_scroll;
document.getElementById("miframe").onmouseleave = enable_scroll;
您可以使用document.body
,但是当您使用 JSBin 或类似的东西时会遇到混乱,并且有六个(好的,三个,但仍然)documents
和bodies
.
在这里检查修改后的 JSBIN 。