All files / src/components/f-scroll-view.vue/js scrollbar-width.js

0% Statements 0/18
0% Branches 0/2
0% Functions 0/1
0% Lines 0/18

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28                                                       
let scrollBarWidth;
 
export default function () {
    if (scrollBarWidth !== undefined) {
        return scrollBarWidth;
    }
 
    const outer = document.createElement('div');
    outer.className = 'f-scroll-view__wrap';
    outer.style.visibility = 'hidden';
    outer.style.width = '100px';
    outer.style.position = 'absolute';
    outer.style.top = '-9999px';
    document.body.appendChild(outer);
 
    const widthNoScroll = outer.offsetWidth;
    outer.style.overflow = 'scroll';
 
    const inner = document.createElement('div');
    inner.style.width = '100%';
    outer.appendChild(inner);
 
    const widthWithScroll = inner.offsetWidth;
    outer.parentNode.removeChild(outer);
    scrollBarWidth = widthNoScroll - widthWithScroll;
    return scrollBarWidth;
}