123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- /**
- * 获取滚动条宽度
- */
- 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;
- };
|