计算滚动条的宽度--js

Posted guojikun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算滚动条的宽度--js相关的知识,希望对你有一定的参考价值。

原理

  1. 创建两个div嵌套在一起
  2. 外层的div设置固定宽度和overflow:scroll
  3. 滚动条的宽度=外层div的offsetWidth-内层div的offsetWidth

技术图片

实现代码

/**
 * 获取滚动条的宽度
 */
getScrollWidth() {
    const scroll = document.createElement("div");
    const scrollIn = document.createElement("div");
    scroll.appendChild(scrollIn);
    scroll.style.width = "100px";
    scroll.style.height = "50px";
    scroll.style.overflow = "scroll";
    scroll.style.marginLeft = "-100000px";
    document.body.appendChild(scroll);
    const scrollInWidth = scrollIn.offsetWidth;
    const scrollWidth = scroll.offsetWidth;
    const tmp = setTimeout(() => {
        document.body.removeChild(scroll);
        clearTimeout(tmp);
    }, 10);
    return scrollWidth - scrollInWidth;
}

以上是关于计算滚动条的宽度--js的主要内容,如果未能解决你的问题,请参考以下文章

js利用offsetWidth和clientWidth来计算滚动条的宽度

如何计算滚动条的宽度?

js如何获取滚动条的高度

js获取浏览器宽度高度(整理)

如何获取bootstrap滚动条的高度

原生JS 和 JQ 获取滚动条的高度,以及距离顶部的高度