mirror of
https://github.com/tenrok/OverlayScrollbars.git
synced 2026-06-18 22:40:36 +03:00
improve code for body
This commit is contained in:
@@ -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 (
|
||||||
|
|||||||
+13
-6
@@ -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
|
||||||
),
|
),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user