2014-12-04 243 views
0

我有我的html页面和iframe,当我将鼠标放在iframe上时,我使用鼠标滚动按钮将滚动iframe页面,我不希望发生这种情况。但我不希望卷轴在此iframe中全部禁用,因为我拥有fresque,而且我必须能够使用卷轴放大在iframe中禁用滚动

我该怎么办?

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

+7

“我想禁用页面的滚动而不停止滚动。” - 笏? – brbcoding 2014-12-04 14:18:41

+0

以及我希望当人们使用滚动按钮时,它不会滚动iframe页面。但没有禁用滚动,因为我需要的按钮滚动工作在fresque上的缩放 – leykan 2014-12-04 14:20:58

回答

1

你可以尝试使用mousewheel事件取消滚动。

示例代码:

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();,如果你想用一个标志来启用/禁用滚动滚动将无法工作。

你可以在这里阅读更多信息:http://www.quirksmode.org/dom/events/scroll.html


这是我的老办法:

的问题不够具体,但我想我明白了。

这里是一块的jQuery来解决我的理解:

(function($){ 
    $(function(){ 
     $(window).click(function(event){ 
      if(event.which==3) //middle button 
      { 
       event.preventDefault(); 
       //remaining code for the zoom(?) 
      } 
     }); 
    }); 
})(jQuery); 

这应该禁止使用滚轮滚动页面(不触摸工作)。

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

包含此代码里面的的iframe!

+0

谢谢,就是这样。我不能使用jQuery,但应该没问题 – leykan 2014-12-04 14:41:33

+0

@leykan让我为你修复它。 – 2014-12-04 14:44:39

+0

@leykan我在答案中发现了一个问题。你应该删除标记。我会尽力修复它 – 2014-12-04 14:47:28

1

尝试使用SCROLLING = “否” 选项,如

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

我不能滚动将被禁用,我需要它。 – leykan 2014-12-04 14:22:38

+0

对不起,我不明白你想要达到什么目标。你能提供更多信息吗? – eirasf 2014-12-04 14:26:02

+0

嗯,我有我的HTML页面的iframe,当我把鼠标放在iframe上,我用鼠标滚动按钮,它会滚动iframe页面,我不希望发生这种情况。但我不希望滚动在此iframe中全部禁用,因为我拥有fresque,而且我必须能够使用滚动放大 – leykan 2014-12-04 14:29:54

0

假设: “我想禁用页面的滚动而不disabeling滚动(在iframe

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

<style type="text/css"> 
    html, body { 
    overflow: hidden; 
    } 
</style> 

...和,这将禁用滚动每当我t的尝试......

$(window).scroll(function() { 
    scroll(0,0); 
}); 

...虽然,这可能是一个更好的选择......

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