美文网首页
教你使用封装的思想写一个获取滚动条的宽度的方法

教你使用封装的思想写一个获取滚动条的宽度的方法

作者: lMadman | 来源:发表于2016-11-01 20:27 被阅读0次
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>如何获取滚动轴的宽度</title>
</head>
<body>
</body>
<script>
    function getScrollBar() {
        var el = document.createElement('p'),
                styles={
                    width:'100px',
                    height:'100px',
                    overflowY : "scroll"
                },i;
        for(i in styles){
            el.style[i] = styles[i];
        }
        document.body.appendChild(el);
        console.log(el);
        var scrollBarWidth = el.offsetWidth - el.clientWidth;
        el.remove();
        return scrollBarWidth;
    }
    console.log(getScrollBar());  //getScrollBar()返回的就是浏览器的导航条宽度
</script>
</html>
Paste_Image.png

这个思想就是,首先在body下创建一个元素,并让它显示滚动条,通过这个元素的offsetWidth和clientWidth的差值来获取这个浏览器的滚动条宽度。

可以看到,clientWidth是获取元素的可视宽度,并不包括滚动条,其实也可以通过获取出现滚动条之前元素的clientWidth和出现滚动条之后元素的clientWidth的值,进行相减,得出滚动条的值。

相关文章

网友评论

      本文标题:教你使用封装的思想写一个获取滚动条的宽度的方法

      本文链接:https://www.haomeiwen.com/subject/bpnmuttx.html