2013-02-15 90 views
0

我有一个iframe用于显示我的网页的主要内容;不过,无论鼠标指向何处,我都想让IFRAME滚动。我不希望我的访问者因无法滚动而感到困惑,除非他们的鼠标悬停在iframe上。这可能吗?用鼠标悬停在身体​​上的任何地方滚动iframe?滚动一个iframe,而不必鼠标移动它

我不会链接任何代码,因为我唯一相关的代码是iframe> </iframe>标记<。

(身体本身不可滚动,隐藏滚动条)

+0

我找不到任何与谷歌或本网站相关的东西:( – 2013-02-15 17:55:51

+0

我认为这将是可能的使用JavaScript以某种方式......我不是太知道JS的创建它虽然。东西与定义整个< body>的鼠标悬停区域被链接到iframe,所以滚动鼠标滚轮在框架边界外仍然滚动它 – 2013-02-15 18:41:20

+0

我想我需要有人给我写一段代码,基本上说:“body.hover(或body onmouseover)滚动iframeid“或类似的哈哈,就像我说我在JS失败。 – 2013-02-15 18:50:42

回答

0

好的。我放在一起为这个相当快速和肮脏的解决方案,包括以下步骤:

  • 添加一个“id”你元素。 (在我的示例中,我使用了id="myFrame"
  • jQuery Mousewheel插件连同最新的jQuery一起添加到您的html页面的标题中。


<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script> 
<script type="text/javascript" src="https://raw.github.com/brandonaaron/jquery-mousewheel/master/jquery.mousewheel.js"></script> 


  • 最后在HTML主体的端部或的IFRAME本身后添加以下JavaScript代码。


<script type="text/javascript"> 
    var scrolloffset = 30; // amount of scrolling per mousewheel step 

    var myFrame = $('#myFrame'); // the iframe ID 
    var frameScrollPosition = 0; 

    $(window).mousewheel(function(event,delta){ 

     // reset stored offset so that it matches with iframe's 
     frameScrollPosition = myFrame.contents().scrollTop(); 

     var frameHeight = myFrame.contents().height() - myFrame.height(); 

     if(delta > 0){ 
      var newPosition = frameScrollPosition - scrolloffset; 
     } else { 
      var newPosition = frameScrollPosition + scrolloffset; 
     } 

     if(newPosition < 0){ 
      newPosition = 0; 
     } 

     if(newPosition >= frameHeight){ 
      newPosition = frameHeight; 
     } 

     frameScrollPosition = newPosition; 
     myFrame.contents().scrollTop(frameScrollPosition); 

    }); 
</script> 

确保您download插件,并从GitHub像我这样不叫。这只是为了测试和概念验证。

+0

你说什么,但没有什么不同是发生:(在Chrome,Safari和Firefox测试。这项工作为你测试它吗? – 2013-02-23 19:39:36

+0

可能与此代码冲突的事情是,iFrame本身不滚动 - 我使用iframe源代码中的滚动条而不是让iframe本身滚动它的内容问题是否可以解决?(如果我改变它,以便iframe滚动,我会在某些浏览器中丢失自定义滚动条。) – 2013-02-23 19:41:37

+0

(抱歉,延迟响应,我在度假!)感谢您的帮助: ) – 2013-02-23 20:48:40