これは比較的単純で、単なる記録です。
ネストされたノードを作成し、外側のノードにスクロール バーを生成させ、offsetWidth - clientWidth を使用してスクロール バーの幅を取得します。ページの揺れを避けるために、外部要素のposition:absoluteとvisibility:hiddenを設定できることに注意してください。
参照:
function getScrollWith(){
var Wrap = setAttributes(document.createElement('div'),{
スタイル : {
幅 : '200px'、
高さ : '200px'、
オーバーフロー : '自動'、
位置 : '絶対'、
可視性 : '非表示'
}
})
var inner = setAttributes(document.createElement('div'),{
style : {
width : '100px',
height: '2000px'
})
document.body.appendChild(wrap);
wrap.appendChild(inner); (ラップ);
ラップ = null;
return w;
関数 setAttributes(elem,opts){
for(opts の var key)
if(typeof opts [key] == 'string'){
elem[key] = opts[key]
}else{
if(!elem[key]){
elem[key] = { };
setAttributes(elem[key],opts[key])
}
}
return elem;