【问题标题】:Scroll down all (vertical) scrollable bars whatsoever with vanilla JavaScript使用 vanilla JavaScript 向下滚动所有(垂直)可滚动条
【发布时间】:2019-07-10 23:20:06
【问题描述】:

在最新的 Chrome 中,我想自动向下滚动网页中的所有可滚动项目列表。
而是向下滚动 滚动项目容器 内的 滚动项目 直到 最下方的提示 以显示更多项目(并在每个可滚动列表中重复此操作以暴露其中的所有项目),我想运行一个普通的 JavaScript 函数来最大程度地向下滚动所有内容,直到 最下方的提示

在我看来应该考虑以下方法:

1) window.scrollBy(0,500);
2) window.scrollTo(0,document.body.scrollHeight);
3) element.scrollIntoView();

我试过了:

const [...elements] = document.getElementsByTagName("*");
elements.forEach((element) => {
    element.scrollTo(0,document.body.scrollHeight)
});

未定义

和:

const [...elements] = document.getElementsByTagName("*");
elements.forEach((element) => {
    element.scrollIntoView();
});

未定义

如何使用原生 JavaScript 循环遍历所有(垂直)可滚动条并自动且最大程度地向下滚动所有这些条?

【问题讨论】:

    标签: javascript html loops


    【解决方案1】:

    你已经很接近了。

    您只需要使用每个元素的 scrollHeight 而不是总是使用正文。

    const [...elements] = document.getElementsByTagName("*");
    elements.forEach((element) => {
        element.scrollTo(0,element.scrollHeight)
    });
    

    【讨论】:

    • 谢谢。似乎我应该用 window.setInterval 重复这大约 30 秒(而不是以某种方式取消它)以获得每个列表中的最大内容量。
    • 这应该直接滚动所有元素。除非元素尚未填充或除非滚动触发 js 脚本,该脚本将修改页面并创建更多可滚动空间。
    猜你喜欢
    • 2016-09-03
    • 2011-06-05
    • 2023-03-17
    • 2014-09-21
    • 1970-01-01
    • 2012-02-25
    • 1970-01-01
    • 1970-01-01
    • 2021-04-25
    相关资源
    最近更新 更多