javascript - 如何同步多个 iframe 的滚动位置

标签 javascript html iframe

我有一个基于选项卡的 HTML 布局(比如 5 个)。 在每个选项卡中,我加载一个 iframe。 iframe 内容是彼此的变体,用户可以通过切换选项卡进行比较。

如何在 javascript 中同步所有 iframe 的垂直和水平滚动? 换句话说,在一个 iframe 中滚动应该滚动相同的量所有其他 iframe,允许用户比较相同的数据。

奖励点:仅当用户首次打开选项卡时才加载 iframe 内容。因此,新打开的 iframe 应直接滚动到与已打开的 iframe 相同的位置。

谢谢。

最佳答案

虽然这适用于 div,但不适用于 iframe。

这是你可以做的,

$($('#iframe1').contents()).scroll(function(){
    $($('#iframe2').contents()).scrollTop($(this).scrollTop());
}); 

jQuery's scroll event ,您应该能够同步它们。

编辑:不需要插件。这是对我有用的代码:

<html>
<head>
<SCRIPT language="javascript" type="text/javascript" src="jquery-1.3.2.js"></SCRIPT>
<SCRIPT>
$(document).ready(function()
{
$("#div1").scroll(function () { 
        $("#div2").scrollTop($("#div1").scrollTop());
        $("#div2").scrollLeft($("#div1").scrollLeft());
    });
$("#div2").scroll(function () { 
        $("#div1").scrollTop($("#div2").scrollTop());
        $("#div1").scrollLeft($("#div2").scrollLeft());
    });

});

</SCRIPT>
</head>
<body>
<div id="div1" style="overflow:auto;height:100px;width:200px;border:1px solid black;">
Test..................................................................................................................................................................................................................................................................................test
<BR/><BR/>
Test..................................................................................................................................................................................................................................................................................test
<BR/><BR/>
Test..................................................................................................................................................................................................................................................................................test
<BR/><BR/>
Test..................................................................................................................................................................................................................................................................................test
<BR/><BR/>
Test..................................................................................................................................................................................................................................................................................test
<BR/><BR/>
Test..................................................................................................................................................................................................................................................................................test
<BR/><BR/>
Test..................................................................................................................................................................................................................................................................................test
<BR/><BR/>
Test..................................................................................................................................................................................................................................................................................test
<BR/><BR/>
Test..................................................................................................................................................................................................................................................................................test
<BR/><BR/>
Test..................................................................................................................................................................................................................................................................................test
<BR/><BR/>
Test..................................................................................................................................................................................................................................................................................test
<BR/><BR/>
Test..................................................................................................................................................................................................................................................................................test
<BR/><BR/>
Test..................................................................................................................................................................................................................................................................................test
<BR/><BR/>
Test..................................................................................................................................................................................................................................................................................test
<BR/><BR/>
Test..................................................................................................................................................................................................................................................................................test
<BR/><BR/>
</div>

<div id="div2" style="overflow:auto;height:100px;width:200px;border:1px solid black;">
Test..................................................................................................................................................................................................................................................................................test
<BR/><BR/>
Test..................................................................................................................................................................................................................................................................................test
<BR/><BR/>
Test..................................................................................................................................................................................................................................................................................test
<BR/><BR/>
Test..................................................................................................................................................................................................................................................................................test
<BR/><BR/>
Test..................................................................................................................................................................................................................................................................................test
<BR/><BR/>
Test..................................................................................................................................................................................................................................................................................test
<BR/><BR/>
Test..................................................................................................................................................................................................................................................................................test
<BR/><BR/>
Test..................................................................................................................................................................................................................................................................................test
<BR/><BR/>
Test..................................................................................................................................................................................................................................................................................test
<BR/><BR/>
Test..................................................................................................................................................................................................................................................................................test
<BR/><BR/>
Test..................................................................................................................................................................................................................................................................................test
<BR/><BR/>
Test..................................................................................................................................................................................................................................................................................test
<BR/><BR/>
Test..................................................................................................................................................................................................................................................................................test
<BR/><BR/>
Test..................................................................................................................................................................................................................................................................................test
<BR/><BR/>
Test..................................................................................................................................................................................................................................................................................test
<BR/><BR/>
</div>

</body>
</html>

关于javascript - 如何同步多个 iframe 的滚动位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/762274/

相关文章:

javascript - 使用 Google Sheets 编写的脚本进行简单计算

javascript - Backbone View DOM 元素已删除

javascript - 当 "resizable"元素隐藏/取消隐藏(如文档中所述)时, polymer IronResizableBehavior 铁调整大小事件不会触发

javascript - 在 Chrome 上添加了多个类,但在 Edge 或 IE 上未添加

在平板电脑上长按/点击时触发 Javascript 事件

html - 如何在字符中设置文本区域的宽度和高度

dom - 如何读取加载了来自另一个域的页面的 iframe 的 DOM?

html - 缩放 iframe 以适本地适应

javascript - jQuery html() 在 iframe 中失败?

javascript - 计算可预订资源的可用时段