improve code for body

This commit is contained in:
Rene Haas
2022-07-28 17:56:55 +02:00
parent ebaaa1c907
commit 0fb35b5ae3
4 changed files with 18 additions and 10 deletions
+1 -1
View File
@@ -109,7 +109,7 @@ export const defaultOptions: Options = {
theme: 'os-theme-dark', theme: 'os-theme-dark',
visibility: 'auto', // visible || hidden || auto || v || h || a visibility: 'auto', // visible || hidden || auto || v || h || a
autoHide: 'never', // never || scroll || leave || move || n || s || l || m autoHide: 'never', // never || scroll || leave || move || n || s || l || m
autoHideDelay: 800, // number autoHideDelay: 1300, // number
dragScroll: true, // true || false dragScroll: true, // true || false
clickScroll: false, // 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 pointers: ['mouse', 'touch', 'pen'], // null || array of supported pointers: https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/pointerType
@@ -196,8 +196,9 @@ export const createScrollbarsSetup = (
const [dragScroll, dragScrollChanged] = checkOption<boolean>('scrollbars.dragScroll'); const [dragScroll, dragScrollChanged] = checkOption<boolean>('scrollbars.dragScroll');
const [clickScroll, clickScrollChanged] = checkOption<boolean>('scrollbars.clickScroll'); const [clickScroll, clickScrollChanged] = checkOption<boolean>('scrollbars.clickScroll');
const updateHandle = _overflowEdgeChanged || _overflowAmountChanged || _directionChanged; const updateHandle =
const updateVisibility = _overflowStyleChanged || visibilityChanged; _overflowEdgeChanged || _overflowAmountChanged || _directionChanged || force;
const updateVisibility = _overflowStyleChanged || visibilityChanged || force;
const setScrollbarVisibility = (overflowStyle: OverflowStyle, isHorizontal: boolean) => { const setScrollbarVisibility = (overflowStyle: OverflowStyle, isHorizontal: boolean) => {
const isVisible = const isVisible =
@@ -325,7 +325,7 @@ export const createStructureSetupObservers = (
_ignoreContentChange: (mutation, isNestedTarget) => { _ignoreContentChange: (mutation, isNestedTarget) => {
const { target, attributeName } = mutation; const { target, attributeName } = mutation;
const ignore = const ignore =
!isNestedTarget && attributeName !isNestedTarget && attributeName && !_viewportIsTarget
? liesBetween(target, hostSelector, viewportSelector) ? liesBetween(target, hostSelector, viewportSelector)
: false; : false;
return ( return (
@@ -105,6 +105,8 @@ export const createOverflowUpdateSegment: CreateStructureUpdateSegment = (
_viewportArrange, _viewportArrange,
_viewportIsTarget, _viewportIsTarget,
_viewportAddRemoveClass, _viewportAddRemoveClass,
_isBody,
_windowElm,
} = structureSetupElements; } = structureSetupElements;
const { const {
_nativeScrollbarsSize, _nativeScrollbarsSize,
@@ -119,6 +121,7 @@ export const createOverflowUpdateSegment: CreateStructureUpdateSegment = (
!_viewportIsTarget && !_viewportIsTarget &&
!_nativeScrollbarsHiding && !_nativeScrollbarsHiding &&
(_nativeScrollbarsOverlaid.x || _nativeScrollbarsOverlaid.y); (_nativeScrollbarsOverlaid.x || _nativeScrollbarsOverlaid.y);
const viewportIsTargetBody = _isBody && _viewportIsTarget;
const [updateSizeFraction, getCurrentSizeFraction] = createCache<WH<number>>( const [updateSizeFraction, getCurrentSizeFraction] = createCache<WH<number>>(
whCacheOptions, whCacheOptions,
@@ -414,14 +417,18 @@ export const createOverflowUpdateSegment: CreateStructureUpdateSegment = (
}; };
const overflowAmountClientSize = { const overflowAmountClientSize = {
w: max0( w: max0(
arrangedViewportClientSize.w + viewportIsTargetBody
max0(viewportclientSize.w - viewportScrollSize.w) + ? _windowElm.innerWidth
sizeFraction.w : arrangedViewportClientSize.w +
max0(viewportclientSize.w - viewportScrollSize.w) +
sizeFraction.w
), ),
h: max0( h: max0(
arrangedViewportClientSize.h + viewportIsTargetBody
max0(viewportclientSize.h - viewportScrollSize.h) + ? _windowElm.innerHeight
sizeFraction.h : arrangedViewportClientSize.h +
max0(viewportclientSize.h - viewportScrollSize.h) +
sizeFraction.h
), ),
}; };