mirror of
https://github.com/tenrok/OverlayScrollbars.git
synced 2026-05-27 00:44:06 +03:00
fix timeout raf bug
This commit is contained in:
@@ -30,5 +30,6 @@ export const classNameScrollbarTrack = 'os-scrollbar-track';
|
||||
export const classNameScrollbarHandle = 'os-scrollbar-handle';
|
||||
export const classNamesScrollbarVisible = `${classNameScrollbar}-visible`;
|
||||
export const classNamesScrollbarCornerless = `${classNameScrollbar}-cornerless`;
|
||||
export const classNamesScrollbarTransitionless = `${classNameScrollbar}-transitionless`;
|
||||
export const classNamesScrollbarInteraction = `${classNameScrollbar}-interaction`;
|
||||
export const classNamesScrollbarAutoHidden = `${classNameScrollbar}-auto-hidden`;
|
||||
|
||||
@@ -3,6 +3,7 @@ import {
|
||||
appendChildren,
|
||||
createDiv,
|
||||
each,
|
||||
isEmptyArray,
|
||||
on,
|
||||
push,
|
||||
removeClass,
|
||||
@@ -16,6 +17,7 @@ import {
|
||||
classNameScrollbarTrack,
|
||||
classNameScrollbarHandle,
|
||||
classNamesScrollbarInteraction,
|
||||
classNamesScrollbarTransitionless,
|
||||
} from 'classnames';
|
||||
import { getEnvironment } from 'environment';
|
||||
import { dynamicInitializationElement as generalDynamicInitializationElement } from 'initialization';
|
||||
@@ -96,7 +98,10 @@ export const createScrollbarsSetupElements = (
|
||||
? classNameScrollbarHorizontal
|
||||
: classNameScrollbarVertical;
|
||||
const arrToPush = horizontal ? horizontalScrollbars : verticalScrollbars;
|
||||
const scrollbar = createDiv(`${classNameScrollbar} ${scrollbarClassName} os-theme-dark`);
|
||||
const transitionlessClass = isEmptyArray(arrToPush) ? classNamesScrollbarTransitionless : '';
|
||||
const scrollbar = createDiv(
|
||||
`${classNameScrollbar} ${scrollbarClassName} ${transitionlessClass} os-theme-dark`
|
||||
);
|
||||
const track = createDiv(classNameScrollbarTrack);
|
||||
const handle = createDiv(classNameScrollbarHandle);
|
||||
const result = {
|
||||
@@ -134,6 +139,11 @@ export const createScrollbarsSetupElements = (
|
||||
const appendElements = () => {
|
||||
appendChildren(evaluatedScrollbarSlot, horizontalScrollbars[0]._scrollbar);
|
||||
appendChildren(evaluatedScrollbarSlot, verticalScrollbars[0]._scrollbar);
|
||||
|
||||
setTimeout(() => {
|
||||
addRemoveClassHorizontal(classNamesScrollbarTransitionless);
|
||||
addRemoveClassVertical(classNamesScrollbarTransitionless);
|
||||
}, 300);
|
||||
};
|
||||
|
||||
generateHorizontalScrollbarStructure();
|
||||
|
||||
@@ -29,8 +29,8 @@ export interface ScrollbarsSetupStaticState {
|
||||
|
||||
const createSelfCancelTimeout = (timeout?: number | (() => number)) => {
|
||||
let id: number;
|
||||
const setT = timeout ? (window.setTimeout as (...args: any[]) => number) : rAF!;
|
||||
const clearT = timeout ? window.clearTimeout : cAF!;
|
||||
const setT = timeout ? (setTimeout as (...args: any[]) => number) : rAF!;
|
||||
const clearT = timeout ? clearTimeout : cAF!;
|
||||
return [
|
||||
(callback: () => any) => {
|
||||
clearT(id);
|
||||
|
||||
@@ -6,6 +6,9 @@
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
}
|
||||
.os-scrollbar-transitionless {
|
||||
transition: none;
|
||||
}
|
||||
.os-scrollbar-track {
|
||||
pointer-events: auto;
|
||||
position: relative;
|
||||
|
||||
Reference in New Issue
Block a user