滚动iframe而不必将鼠标悬停在其上

滚动iframe而不必将鼠标悬停在其上,iframe,scroll,mouseover,Iframe,Scroll,Mouseover,我有一个iframe,用于显示我的网页的主要内容;但是,无论鼠标指向何处,我都希望使IFRAME滚动。我不希望我的访问者因为不能滚动而感到困惑,除非他们的鼠标在iframe上。这可能吗?要在鼠标悬停在身体的任何位置时滚动iframe 我不会链接任何代码,因为我仅有的相关代码是标记 (主体本身不可滚动,滚动条隐藏)好的。为此,我制定了一个相当快速且肮脏的解决方案,包括以下步骤: 在元素中添加一个“id”。(在我的示例中,我使用了id=“myFrame”) 将jQuery鼠标滚轮插件与最新的jQu

我有一个iframe,用于显示我的网页的主要内容;但是,无论鼠标指向何处,我都希望使IFRAME滚动。我不希望我的访问者因为不能滚动而感到困惑,除非他们的鼠标在iframe上。这可能吗?要在鼠标悬停在身体的任何位置时滚动iframe

我不会链接任何代码,因为我仅有的相关代码是标记


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

好的。为此,我制定了一个相当快速且肮脏的解决方案,包括以下步骤:

  • 元素中添加一个“id”。(在我的示例中,我使用了
    id=“myFrame”
  • jQuery鼠标滚轮插件与最新的jQuery一起附加到html页面的标题



  • 最后,在html正文末尾或iframe本身之后添加以下javascript代码


变量scrolloffset=30;//每个鼠标滚轮步数的滚动量
var myFrame=$('#myFrame');//iframe ID
var frameScrollPosition=0;
$(窗口).鼠标滚轮(函数(事件,增量){
//重置存储的偏移量,使其与iframe的相匹配
frameScrollPosition=myFrame.contents().scrollTop();
var frameHeight=myFrame.contents().height()-myFrame.height();
如果(增量>0){
var newPosition=frameScrollPosition-scrolloffset;
}否则{
var newPosition=frameScrollPosition+scrolloffset;
}
如果(新位置<0){
newPosition=0;
}
如果(新位置>=帧高度){
newPosition=帧高度;
}
frameScrollPosition=新位置;
myFrame.contents().scrollTop(frameScrollPosition);
});

请确保您使用了该插件,而不是像我一样从github调用它。这只是为了测试和概念验证。

我在谷歌或本网站上找不到与此相关的任何内容:(我认为以某种方式使用javascript是可能的……但我对JS的知识还不太了解,无法创建它。定义整个的鼠标覆盖区域链接到iframe,这样在框架边界外滚动鼠标滚轮仍然可以滚动。我想我需要有人给我写一段代码,基本上说:“body.hover(或body onmouseover)scroll iframeid”之类的东西哈哈,就像我说我在JS上失败了一样。我会使用jQuery将一个页面加载到我当前页面的一个div中,并使其可滚动,而不是一个单独作为窗口的iframe。这是否意味着我可以将整个iframe内容加载到一个div中?这会解决问题吗“无论你的鼠标指针在哪里,都要滚动此项?”按你所说的做了,但没有发生任何变化:(在Chrome、Safari和Firefox中进行了测试。当您测试它时,这对您有用吗?可能与此代码冲突的是iFrame本身不可滚动-我使用iFrame源代码中的滚动条,而不是使iFrame本身只滚动其源代码的内容。这可能是问题所在吗?(如果我更改它,使iframe可以滚动,我会在某些浏览器中丢失我的自定义滚动条。)(很抱歉延迟响应,我正在休假!)感谢您的帮助:)@TommyBlackburn这是我的临时测试作为证明。IE有问题(一点也不奇怪)。在其他浏览器上,它工作正常。一般来说,使用iFrame是一件痛苦的事情。请按照我的指示再次对页面进行所有更改,以便我查看错误。我无法找出这一点…经过数小时的测试,即使将您的确切示例复制到我的计算机进行测试,它也不起作用。它在您提供的链接上对我有效,但当我把你做的每件事都复制到我电脑上的一个文件夹时,它就不起作用了。