2014-10-19 55 views
1

也许你可以做一个JavaScript滚动事件的滚动iframe?尽管我并不擅长JavaScript。即使光标没有悬停它,也无法滚动iframe?

我发现这一点,但我仍然不知道如何定位的iframe,并滚动它: Get mouse wheel events in jQuery?

+0

iframe是否在同一个原点上? Origin = scheme/host/port,所以'https:// example.com'只能控制'https:// example.com'上的iframe。 – Rudie 2014-10-19 02:15:00

+0

是的。 (((( – 2014-10-19 02:16:35

+0

)然后你可以用JS在顶部文档中捕捉鼠标滚轮事件并更改框架文档中的滚动偏移但是我要睡觉Goodluck – Rudie 2014-10-19 02:18:12

回答

0

给你:http://jsfiddle.net/dsmeuzL5/

HTML:

<iframe id="myframe" src="//www.yourpage.com"></iframe> 

JS: var iframe = document.getElementById('myframe');

var MouseWheelHandler = function (e) { 
    // cross-browser wheel delta 
    var e = window.event || e; // old IE support 
    var delta = Math.max(-1, Math.min(1, (e.wheelDelta || -e.detail))); 
    console.log(delta); 
    var doc = iframe.contentDocument ? iframe.contentDocument : (iframe.contentWindow ? iframe.contentWindow.document : iframe.document); 
    doc.body.scrollTop = doc.body.scrollTop - (delta * 30); 

    return false; 
} 


if (window.addEventListener) { 
    // IE9, Chrome, Safari, Opera 
    window.addEventListener("mousewheel", MouseWheelHandler, false); 
    // Firefox 
    window.addEventListener("DOMMouseScroll", MouseWheelHandler, false); 
} 
// IE 6/7/8 
else window.attachEvent("onmousewheel", MouseWheelHandler); 
+0

非常好,谢谢你 – 2014-10-19 04:32:25

+0

只需阅读代码所以下一次你可以自己做:) – GramThanos 2014-10-19 04:36:24

+0

我的鼠标滚动每个滚动100px。你的只有30.有同步方法吗?正常的滚动速度会很棒。 – Rudie 2014-10-26 14:48:23

相关问题