我希望在主页面上禁用滚动,但是当鼠标悬停在iframe上时,我想禁用iframe。 你可以更清楚地看到我的意思here。
如果iframe正在拾取鼠标滚轮事件,那么当鼠标位于iframe内部时,我不希望整个页面向下滚动。请注意,它在chrome中工作,而不是在ff。
编辑:键盘组件甚至按预期工作!
注意:
滚动启用/禁用基于代码here
答案 0 :(得分:5)
更简单的解决方案:
为您的父体提供一个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
和{{1} }。
检查修改后的JSBIN here。