JavaScript 获取浏览器滚动条宽度的实用方法
作者:白露时间:2026-10-26 15:52:38浏览:544
本文介绍了一种通过创建隐藏嵌套节点来计算浏览器滚动条宽度的JavaScript方法。利用外层容器的offsetWidth与clientWidth之差获取数值,并通过设置position:absolute和visibility:hidden避免页面抖动。代码包含完整的节点创建、样式设置及清理逻辑,适用于需要精确控制布局的场景。
JavaScript 获取浏览器滚动条宽度的实用方法
此方法实现简单,仅用于记录相关技术细节。
核心思路是创建一个嵌套的DOM节点,强制外层容器出现滚动条,随后通过计算offsetWidth与clientWidth的差值即可得到滚动条的宽度。为防止该操作导致页面布局发生抖动,建议将外层元素设置为position:absolute并配合visibility:hidden属性进行隐藏。
具体参考实现如下:
代码示例:
function getScrollWith(){
var wrap = setAttributes(document.createElement('div'),{
style : {
width : '200px',
height: '200px',
overflow: 'auto',
position:'absolute',
visibility:'hidden'
}
})
var inner = setAttributes(document.createElement('div'),{
style : {
width : '100px',
height: '2000px'
}
})
document.body.appendChild(wrap);
wrap.appendChild(inner);
var w = wrap.offsetWidth - wrap.clientWidth;
document.body.removeChild(wrap);
wrap = null;
inner = null;
return w;
}
function setAttributes(elem,opts){
for(var key in opts){
if(typeof opts[key] == 'string'){
elem[key] = opts[key];
}else{
if(!elem[key]){
elem[key] = {};
}
setAttributes(elem[key],opts[key]);
}
}
return elem;
} 作者最新文章
AOS.js 动画不触发怎么办?排查 DOM 加载与移动端兼容问题
2026-11-05 17:02:26
sigma.js 怎么实现节点点击、拖拽与悬停提示交互
2026-11-05 15:03:27
Matter.js 与 PixiJS/Three.js 集成:分离物理计算与渲染
2026-11-05 13:43:48
主流JS弹幕库选型指南:Danmaku.js等库的功能与体积对比
2026-11-05 09:28:19
JavaScript点击事件监听与交互效果实例
2026-11-05 09:10:19
