From 0fb35b5ae3e759c2a9f8697c872ddc2ae71adc46 Mon Sep 17 00:00:00 2001 From: Rene Haas Date: Thu, 28 Jul 2022 17:56:55 +0200 Subject: [PATCH] improve code for body --- packages/overlayscrollbars/src/options.ts | 2 +- .../setups/scrollbarsSetup/scrollbarsSetup.ts | 5 +++-- .../structureSetup.observers.ts | 2 +- .../updateSegments/overflowUpdateSegment.ts | 19 +++++++++++++------ 4 files changed, 18 insertions(+), 10 deletions(-) diff --git a/packages/overlayscrollbars/src/options.ts b/packages/overlayscrollbars/src/options.ts index 1a4472e..671c6c6 100644 --- a/packages/overlayscrollbars/src/options.ts +++ b/packages/overlayscrollbars/src/options.ts @@ -109,7 +109,7 @@ export const defaultOptions: Options = { theme: 'os-theme-dark', visibility: 'auto', // visible || hidden || auto || v || h || a autoHide: 'never', // never || scroll || leave || move || n || s || l || m - autoHideDelay: 800, // number + autoHideDelay: 1300, // number dragScroll: true, // true || false clickScroll: false, // true || false pointers: ['mouse', 'touch', 'pen'], // null || array of supported pointers: https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/pointerType diff --git a/packages/overlayscrollbars/src/setups/scrollbarsSetup/scrollbarsSetup.ts b/packages/overlayscrollbars/src/setups/scrollbarsSetup/scrollbarsSetup.ts index 5c0d93e..6cb0f03 100644 --- a/packages/overlayscrollbars/src/setups/scrollbarsSetup/scrollbarsSetup.ts +++ b/packages/overlayscrollbars/src/setups/scrollbarsSetup/scrollbarsSetup.ts @@ -196,8 +196,9 @@ export const createScrollbarsSetup = ( const [dragScroll, dragScrollChanged] = checkOption('scrollbars.dragScroll'); const [clickScroll, clickScrollChanged] = checkOption('scrollbars.clickScroll'); - const updateHandle = _overflowEdgeChanged || _overflowAmountChanged || _directionChanged; - const updateVisibility = _overflowStyleChanged || visibilityChanged; + const updateHandle = + _overflowEdgeChanged || _overflowAmountChanged || _directionChanged || force; + const updateVisibility = _overflowStyleChanged || visibilityChanged || force; const setScrollbarVisibility = (overflowStyle: OverflowStyle, isHorizontal: boolean) => { const isVisible = diff --git a/packages/overlayscrollbars/src/setups/structureSetup/structureSetup.observers.ts b/packages/overlayscrollbars/src/setups/structureSetup/structureSetup.observers.ts index 5d0a8e0..77c4ee8 100644 --- a/packages/overlayscrollbars/src/setups/structureSetup/structureSetup.observers.ts +++ b/packages/overlayscrollbars/src/setups/structureSetup/structureSetup.observers.ts @@ -325,7 +325,7 @@ export const createStructureSetupObservers = ( _ignoreContentChange: (mutation, isNestedTarget) => { const { target, attributeName } = mutation; const ignore = - !isNestedTarget && attributeName + !isNestedTarget && attributeName && !_viewportIsTarget ? liesBetween(target, hostSelector, viewportSelector) : false; return ( diff --git a/packages/overlayscrollbars/src/setups/structureSetup/updateSegments/overflowUpdateSegment.ts b/packages/overlayscrollbars/src/setups/structureSetup/updateSegments/overflowUpdateSegment.ts index e26a12d..9b3a687 100644 --- a/packages/overlayscrollbars/src/setups/structureSetup/updateSegments/overflowUpdateSegment.ts +++ b/packages/overlayscrollbars/src/setups/structureSetup/updateSegments/overflowUpdateSegment.ts @@ -105,6 +105,8 @@ export const createOverflowUpdateSegment: CreateStructureUpdateSegment = ( _viewportArrange, _viewportIsTarget, _viewportAddRemoveClass, + _isBody, + _windowElm, } = structureSetupElements; const { _nativeScrollbarsSize, @@ -119,6 +121,7 @@ export const createOverflowUpdateSegment: CreateStructureUpdateSegment = ( !_viewportIsTarget && !_nativeScrollbarsHiding && (_nativeScrollbarsOverlaid.x || _nativeScrollbarsOverlaid.y); + const viewportIsTargetBody = _isBody && _viewportIsTarget; const [updateSizeFraction, getCurrentSizeFraction] = createCache>( whCacheOptions, @@ -414,14 +417,18 @@ export const createOverflowUpdateSegment: CreateStructureUpdateSegment = ( }; const overflowAmountClientSize = { w: max0( - arrangedViewportClientSize.w + - max0(viewportclientSize.w - viewportScrollSize.w) + - sizeFraction.w + viewportIsTargetBody + ? _windowElm.innerWidth + : arrangedViewportClientSize.w + + max0(viewportclientSize.w - viewportScrollSize.w) + + sizeFraction.w ), h: max0( - arrangedViewportClientSize.h + - max0(viewportclientSize.h - viewportScrollSize.h) + - sizeFraction.h + viewportIsTargetBody + ? _windowElm.innerHeight + : arrangedViewportClientSize.h + + max0(viewportclientSize.h - viewportScrollSize.h) + + sizeFraction.h ), };