/** * 获取滚动条宽度 */ let cached = undefined; export const getScrollbarSize = fresh => { // #ifdef H5 if (fresh || cached === undefined) { let inner = document.createElement("div"); let innerStyle = inner.style; innerStyle.width = "100%"; innerStyle.height = "200px"; let outer = document.createElement("div"); let outerStyle = outer.style; outerStyle.position = "absolute"; outerStyle.top = 0; outerStyle.left = 0; outerStyle.pointerEvents = "none"; outerStyle.width = "200px"; outerStyle.height = "150px"; outerStyle.visibility = "hidden"; outer.appendChild(inner); document.body.appendChild(outer); // 设置子元素超出部分隐藏 outerStyle.overflow = "hidden"; let width1 = inner.offsetWidth; // 设置子元素超出部分滚动 outer.style.overflow = "scroll"; let width2 = inner.offsetWidth; if (width1 === width2) { width2 = outer.clientWidth; } document.body.removeChild(outer); cached = width1 - width2; } //#endif return cached; };