获取水平滚动条的高度

san*_*han 5 html javascript css

我遇到了一个问题,我需要知道水平滚动条的高度。

此问答建议您应该使用clientHeight属性并计算差异。不幸的是,这不再起作用了,这里很明显https://jsfiddle.net/fn8naww8/

那么如何获取滚动条的高度呢?

编辑:OSX 不区分 offsetHeight 和 clientHeight。

html:

<div id="wrapper">
  <div id="content"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

css:

#wrapper{
  height:100px;
  width:100%;
  overflow-x:auto;
}
#content{
  height:100%;
  width:200%;
  background:linear-gradient(to right, red , yellow);
}
Run Code Online (Sandbox Code Playgroud)

Rok*_*jan 6

尝试:

var horizontalScrollbarHeight = wrapper.offsetHeight - wrapper.clientHeight; 
Run Code Online (Sandbox Code Playgroud)

或喜欢:

var horizontalScrollbarHeight = wrapper.offsetHeight - parseInt(window.getComputedStyle(wrapper, null).getPropertyValue("height"), 10); 
Run Code Online (Sandbox Code Playgroud)

~17如果滚动条大小没有被 CSS 像使用一样改变,两者都将返回::-webkit-scrollbar

https://developer.mozilla.org/en-US/docs/Web/API/Window/getComputedStyle