我在网站上使用Javascript卷轴类,无缝地将滚动条添加到页面上具有溢出内容的所有预定义元素。客户端最近要求其中一个元素包含iframe,以便他们可以轻松地向此区域添加交互式内容。 (我知道我知道,iframe,但我是这项工作的分包商。没有太大的吸引力。)幸运的是,iFram的内容是从同一个域中提取的,所以我可以在内容加载后重新调整iframe的大小,反过来触发Javascript滚动条。最后,它在Chrome中运行得很漂亮。
在资源管理器和Firefox中,只要鼠标悬停在iframe上,iframe似乎就会窃取鼠标事件。所以mousewheel事件不再有效。您仍然可以拖动滚动手柄以滚动,或单击滚动轨道上的任何位置,但使用鼠标滚轮不会执行任何操作。它甚至没有发动这件事。
我看到其他人也有过类似的问题,但还没有找到解决方法。有人有什么建议吗?
以下是适合衡量标准的Scroll类:http://hastebin.com/xisidogiju.coffee
感谢我能得到的任何帮助!
答案 0 :(得分:1)
鼠标事件与窗口绑定,iframe是窗口。如你所说,这是一个奇迹,它可以在webkit浏览器中使用。
当鼠标移动到父窗口和iframe之间时,你需要传递eventListener和eventHandler。
关于在iframe之间传递对象的一些参考:http://www.dyn-web.com/tutorials/iframes/refs.php。
答案 1 :(得分:0)
我可以设法解决这个问题。您可以查看下面提到的jsfiddle中提到的解决方案。
http://jsfiddle.net/6nnMV/358/
在这里,我创建了一个事件来收听鼠标滚动并将事件绑定到iframe。
然后,您可以使用scrollTop属性滚动父窗口或元素,如
$(element).scrollTop($(element).scrollTop+(number of pixels));
这仅在您访问的iframe位于同一域时才有效。