diff --git a/packages/overlayscrollbars/src/setups/scrollbarsSetup/scrollbarsSetup.elements.ts b/packages/overlayscrollbars/src/setups/scrollbarsSetup/scrollbarsSetup.elements.ts index 733cf52..672a85b 100644 --- a/packages/overlayscrollbars/src/setups/scrollbarsSetup/scrollbarsSetup.elements.ts +++ b/packages/overlayscrollbars/src/setups/scrollbarsSetup/scrollbarsSetup.elements.ts @@ -85,15 +85,15 @@ export const createScrollbarsSetupElements = ( structureSetupElements: StructureSetupElementsObj ): ScrollbarsSetupElements => { const { _getDefaultInitialization } = getEnvironment(); - const { scrollbarsSlot: defaultScrollbarSlot } = _getDefaultInitialization(); + const { scrollbarsSlot: defaultScrollbarsSlot } = _getDefaultInitialization(); const { _documentElm, _target, _host, _viewport, _targetIsElm } = structureSetupElements; - const scrollbarSlot = _targetIsElm ? null : (target as ScrollbarsInitialization).scrollbarsSlot; + const { scrollbarsSlot } = (_targetIsElm ? {} : target) as ScrollbarsInitialization; const evaluatedScrollbarSlot = generalDynamicInitializationElement( [_target, _host, _viewport], () => _host, - defaultScrollbarSlot, - scrollbarSlot + defaultScrollbarsSlot, + scrollbarsSlot ); const scrollbarsAddRemoveClass = ( scrollbarStructures: ScrollbarStructure[], diff --git a/packages/overlayscrollbars/src/setups/scrollbarsSetup/scrollbarsSetup.ts b/packages/overlayscrollbars/src/setups/scrollbarsSetup/scrollbarsSetup.ts index 2ecbaf9..5adda66 100644 --- a/packages/overlayscrollbars/src/setups/scrollbarsSetup/scrollbarsSetup.ts +++ b/packages/overlayscrollbars/src/setups/scrollbarsSetup/scrollbarsSetup.ts @@ -133,13 +133,15 @@ export const createScrollbarsSetup = ( target, structureSetupState._elements ); - const { _host, _viewport, _viewportIsTarget, _isBody } = structureSetupState._elements; + const { _host, _viewport, _viewportIsTarget, _isBody, _documentElm } = + structureSetupState._elements; + const scrollOffsetElement = _isBody ? _documentElm.documentElement : _viewport; const { _horizontal, _vertical } = elements; const { _addRemoveClass: addRemoveClassHorizontal, _handleStyle: styleHorizontal } = _horizontal; const { _addRemoveClass: addRemoveClassVertical, _handleStyle: styleVertical } = _vertical; const styleScrollbarPosition = (structure: ScrollbarStructure) => { const { _scrollbar } = structure; - const elm = _viewportIsTarget && _isBody && parent(_scrollbar) === _viewport && _scrollbar; + const elm = _viewportIsTarget && !_isBody && parent(_scrollbar) === _viewport && _scrollbar; return [ elm, { @@ -193,11 +195,11 @@ export const createScrollbarsSetup = ( }); }); }), - on(_viewport, 'scroll', () => { + on(_isBody ? _documentElm : _viewport, 'scroll', () => { requestScrollAnimationFrame(() => { const structureState = structureSetupState(); - refreshScrollbarHandleOffset(styleHorizontal, structureState, _viewport, true); - refreshScrollbarHandleOffset(styleVertical, structureState, _viewport); + refreshScrollbarHandleOffset(styleHorizontal, structureState, scrollOffsetElement, true); + refreshScrollbarHandleOffset(styleVertical, structureState, scrollOffsetElement); autoHideNotNever && manageScrollbarsAutoHide(true); scrollTimeout(() => { @@ -275,8 +277,13 @@ export const createScrollbarsSetup = ( refreshScrollbarHandleLength(styleHorizontal, currStructureSetupState, true); refreshScrollbarHandleLength(styleVertical, currStructureSetupState); - refreshScrollbarHandleOffset(styleHorizontal, currStructureSetupState, _viewport, true); - refreshScrollbarHandleOffset(styleVertical, currStructureSetupState, _viewport); + refreshScrollbarHandleOffset( + styleHorizontal, + currStructureSetupState, + scrollOffsetElement, + true + ); + refreshScrollbarHandleOffset(styleVertical, currStructureSetupState, scrollOffsetElement); } }, scrollbarsSetupState,