Javascript 在iframe中禁用滚动

Javascript 在iframe中禁用滚动,javascript,html,events,Javascript,Html,Events,我有一个带有iframe的html页面,当我把鼠标放在iframe上,使用鼠标滚动按钮时,它会滚动iframe页面,我不希望发生这种情况。但我不想在这个iframe中完全禁用卷轴,因为我有一幅壁画,我必须用abble来放大卷轴 我怎么办 我试着做scrollTo(0,0)但它在真实页面上执行,而不是在iframe上执行。尝试使用滚动=“否”选项,如中所示 <iframe scrolling="no" src="http://www.google.com" width="400px" hei

我有一个带有iframe的html页面,当我把鼠标放在iframe上,使用鼠标滚动按钮时,它会滚动iframe页面,我不希望发生这种情况。但我不想在这个iframe中完全禁用卷轴,因为我有一幅壁画,我必须用abble来放大卷轴

我怎么办

我试着做
scrollTo(0,0)但它在真实页面上执行,而不是在iframe上执行。

尝试使用滚动=“否”选项,如中所示

<iframe scrolling="no" src="http://www.google.com" width="400px" height="300"></iframe>

假设:“我想禁用页面的滚动,而不取消滚动的标签(在
iframe
中)

首先,这个CSS将关闭页面上的滚动条

<style type="text/css">
  html, body {
    overflow: hidden;
  }
</style>
。。。虽然,这可能是一个更好的选择

document.body.scroll = "no";
document.body.style.overflow = 'hidden';
document.height = window.innerHeight;

您可以尝试使用
鼠标滚轮
事件取消滚动

示例代码:

window.onload=function(){
    setTimeout(function(){ //just to be sure that the document exists
        document.onmousewheel=function(event){
            event.preventDefault();

            //add here your code to zoom

        };
    },300);
};
请注意,IE8将始终“内部”使用
event.preventDefault()和滚动将不起作用

您可以在此处阅读更多信息:


这是我以前的解决方案:

这个问题不够具体,但我想我明白了

下面是一段jQuery,用于修复我所理解的问题:

(function($){
    $(function(){
        $(window).click(function(event){
            if(event.which==3) //middle button
            {
                event.preventDefault();
                //remaining code for the zoom(?)
            }
        });
    });
})(jQuery);
这将禁用使用滚轮滚动页面(触摸不起作用)

您可以在
if
块中包含缩放代码(?)


将此代码包含在iframe中

“我想在不取消滚动的情况下禁用页面滚动。”-沃特?我希望当人们使用滚动按钮时,它不会滚动iframe页面。但是如果没有禁用滚动,因为我需要滚动按钮在湿壁画上进行缩放,我不能,滚动将被禁用,我需要它。对不起,我不明白你当时想实现什么。你能提供更多的信息吗?我有一个带iframe的html页面,当我把鼠标放在iframe上,使用鼠标滚动按钮时,它会滚动iframe页面,我不希望发生这种情况。但是我不希望在这个iframe中完全禁用滚动,因为我有一个fresque,我必须使用abble来放大滚动,所以你希望iframe不获取滚动的焦点并将事件传递到它的容器?您可以通过在iframe上捕获鼠标滚轮事件并将其传递到包含该事件的文档来实现这一点。谢谢。我不能使用jQuery,但它应该是ok@leykan“那就让我帮你修一下吧。”莱肯:我在回答中发现了一个问题。你应该去掉这个标记。我会设法解决的
(function($){
    $(function(){
        $(window).click(function(event){
            if(event.which==3) //middle button
            {
                event.preventDefault();
                //remaining code for the zoom(?)
            }
        });
    });
})(jQuery);