有趣且重要的JS知识合集(14)浏览器获取滚动条宽度

当很多时候,滚动条宽度也会影响到我们页面上的布局,那怎么去计算这宽度呢?浏览器没有提供这方法来计算,那么我们就模拟一个有滚动条的div,然后算出宽度~

小知识:offsetWidth和clientWidth都是只读属性,但是offsetWidth是包括border的,而clientWidth只包含padding,不包含border的,所以可以利用这个差距来计算border宽度

    /**
     * 获取滚动条宽度
     */
    getScrollbarWidth() {
      const scrollDiv = document.createElement('div');
      scrollDiv.style.cssText = 'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;'
      document.body.appendChild(scrollDiv)
      const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth
      document.body.removeChild(scrollDiv)
      return scrollbarWidth
    },

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值