为iFrame创建浮动水平滚动条

Create a floating horizontal scroll bar for an iFrame

本文关键字:水平 滚动条 iFrame 创建      更新时间:2023-09-26

我有一个iFrame。如果用户由于视力不好而放大或使用高放大率,我希望出现一个水平滚动条,以便用户可以在iFrame中从左向右滚动。这部分很简单,不是问题。我发现的问题是,滚动条出现在iFrame的底部,如果放大到需要的程度,则需要用户从实际内容向下滚动很远才能使用,这对用户来说是不友好的。

我想要的是在链接到主滚动条的可见窗口底部显示滚动条,如果用户向下滚动到足以看到主滚动条,滚动条就会消失,这将是一个额外的奖励。

我应该重申,这是在iFrame内部,其中的内容是跨域的。我可以在iFrame中编辑内容,但这将是一项相当大的任务,而编辑主窗口相对简单,所以如果所有需要的工作都可以在那里完成,那就太好了。

另一个选项是用鼠标滚轮控制滚动,请参见示例https://jsfiddle.net/DIRTY_SMITH/5gs8pojm/

(function() {
function scrollHorizontally(e) {
    e = window.event || e;
    var delta = Math.max(-1, Math.min(1, (e.wheelDelta || -e.detail)));
    document.documentElement.scrollLeft -= (delta*40); // Multiplied by 40
    document.body.scrollLeft -= (delta*40); // Multiplied by 40
    e.preventDefault();
}
if (window.addEventListener) {
    // IE9, Chrome, Safari, Opera
    window.addEventListener("mousewheel", scrollHorizontally, false);
    // Firefox
    window.addEventListener("DOMMouseScroll", scrollHorizontally, false);
} else {
    // IE 6/7/8
    window.attachEvent("onmousewheel", scrollHorizontally);
}
})();