mirror of
https://github.com/tenrok/OverlayScrollbars.git
synced 2026-06-07 11:42:28 +03:00
fix window zoom
This commit is contained in:
+4
-3
@@ -118,16 +118,17 @@
|
||||
min-height: 1px;
|
||||
min-width: 1px; }
|
||||
|
||||
.os-scrollbar-transition {
|
||||
transition: opacity 0.3s, visibility 0.3s, top 0.3s, right 0.3s, bottom 0.3s, left 0.3s; }
|
||||
|
||||
.os-scrollbar {
|
||||
transition: opacity 0.3s, visibility 0.3s, top 0.3s, right 0.3s, bottom 0.3s, left 0.3s;
|
||||
pointer-events: none;
|
||||
position: absolute;
|
||||
z-index: 0;
|
||||
opacity: 0;
|
||||
visibility: hidden; }
|
||||
|
||||
.os-scrollbar-transitionless {
|
||||
transition: none; }
|
||||
|
||||
.os-scrollbar-track {
|
||||
pointer-events: auto;
|
||||
position: relative;
|
||||
|
||||
+617
-594
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+907
-887
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+3
-3
@@ -242,8 +242,8 @@ export const scrollbarsHidingPlugin: Plugin<ScrollbarsHidingPluginInstance> = {
|
||||
return [arrangeViewport, undoViewportArrange];
|
||||
},
|
||||
_envWindowZoom: () => {
|
||||
let size = windowSize();
|
||||
let dpr = getWindowDPR();
|
||||
let size = { w: 0, h: 0 };
|
||||
let dpr = 0;
|
||||
|
||||
return (envInstance, updateNativeScrollbarSizeCache, triggerEvent) => {
|
||||
const sizeNew = windowSize();
|
||||
@@ -265,7 +265,7 @@ export const scrollbarsHidingPlugin: Plugin<ScrollbarsHidingPluginInstance> = {
|
||||
const dprNew = getWindowDPR();
|
||||
const deltaIsBigger = deltaAbsSize.w > 2 && deltaAbsSize.h > 2;
|
||||
const difference = !diffBiggerThanOne(deltaAbsRatio.w, deltaAbsRatio.h);
|
||||
const dprChanged = dprNew !== dpr && dpr > 0;
|
||||
const dprChanged = dprNew !== dpr && dprNew > 0;
|
||||
const isZoom = deltaIsBigger && difference && dprChanged;
|
||||
|
||||
if (isZoom) {
|
||||
|
||||
+31
-2
@@ -1,3 +1,9 @@
|
||||
type CacheValues<T> = [
|
||||
value: T,
|
||||
changed: boolean,
|
||||
previous?: T
|
||||
];
|
||||
type UpdateCache<Value> = (force?: boolean) => CacheValues<Value>;
|
||||
interface WH<T> {
|
||||
w: T;
|
||||
h: T;
|
||||
@@ -156,6 +162,28 @@ interface ViewportOverflowState {
|
||||
}
|
||||
type GetViewportOverflowState = (showNativeOverlaidScrollbars: boolean, viewportStyleObj?: StyleObject) => ViewportOverflowState;
|
||||
type HideNativeScrollbars = (viewportOverflowState: ViewportOverflowState, directionIsRTL: boolean, viewportArrange: boolean, viewportStyleObj: StyleObject) => void;
|
||||
type EnvironmentEventMap = {
|
||||
_: [
|
||||
];
|
||||
};
|
||||
interface InternalEnvironment {
|
||||
readonly _nativeScrollbarsSize: XY;
|
||||
readonly _nativeScrollbarsOverlaid: XY<boolean>;
|
||||
readonly _nativeScrollbarsHiding: boolean;
|
||||
readonly _rtlScrollBehavior: {
|
||||
n: boolean;
|
||||
i: boolean;
|
||||
};
|
||||
readonly _flexboxGlue: boolean;
|
||||
readonly _cssCustomProperties: boolean;
|
||||
readonly _defaultInitializationStrategy: InitializationStrategy;
|
||||
readonly _defaultDefaultOptions: Options;
|
||||
_addListener(listener: EventListener<EnvironmentEventMap, "_">): () => void;
|
||||
_getInitializationStrategy(): InitializationStrategy;
|
||||
_setInitializationStrategy(newInitializationStrategy: Partial<InitializationStrategy>): void;
|
||||
_getDefaultOptions(): Options;
|
||||
_setDefaultOptions(newDefaultOptions: PartialOptions<Options>): void;
|
||||
}
|
||||
type ArrangeViewport = (viewportOverflowState: ViewportOverflowState, viewportScrollSize: WH<number>, sizeFraction: WH<number>, directionIsRTL: boolean) => boolean;
|
||||
type UndoViewportArrangeResult = [
|
||||
redoViewportArrange: () => void,
|
||||
@@ -163,11 +191,12 @@ type UndoViewportArrangeResult = [
|
||||
];
|
||||
type UndoArrangeViewport = (showNativeOverlaidScrollbars: boolean, directionIsRTL: boolean, viewportOverflowState?: ViewportOverflowState) => UndoViewportArrangeResult;
|
||||
type ScrollbarsHidingPluginInstance = {
|
||||
_createUniqueViewportArrangeElement(): HTMLStyleElement | false;
|
||||
_overflowUpdateSegment(doViewportArrange: boolean, viewport: HTMLElement, viewportArrange: HTMLStyleElement | false | null | undefined, getState: () => StructureSetupState, getViewportOverflowState: GetViewportOverflowState, hideNativeScrollbars: HideNativeScrollbars): [
|
||||
_createUniqueViewportArrangeElement(env: InternalEnvironment): HTMLStyleElement | false;
|
||||
_overflowUpdateSegment(doViewportArrange: boolean, flexboxGlue: boolean, viewport: HTMLElement, viewportArrange: HTMLStyleElement | false | null | undefined, getState: () => StructureSetupState, getViewportOverflowState: GetViewportOverflowState, hideNativeScrollbars: HideNativeScrollbars): [
|
||||
ArrangeViewport,
|
||||
UndoArrangeViewport
|
||||
];
|
||||
_envWindowZoom(): (envInstance: InternalEnvironment, updateNativeScrollbarSizeCache: UpdateCache<XY<number>>, triggerEvent: () => void) => void;
|
||||
};
|
||||
declare const scrollbarsHidingPlugin: Plugin<ScrollbarsHidingPluginInstance>;
|
||||
type GeneralInitialEventListeners = InitialEventListeners;
|
||||
|
||||
Reference in New Issue
Block a user