vevet
Version:
Vevet is a JavaScript library for creative development that simplifies crafting rich interactions like split text animations, carousels, marquees, preloading, and more.
127 lines • 3.97 kB
TypeScript
import { Module, TModuleOnCallbacksProps } from '../../base';
import { TRequiredProps } from '../../internal/requiredProps';
import { IScrollbarCallbacksMap, IScrollbarMutableProps, IScrollbarStaticProps } from './types';
export * from './types';
type TC = IScrollbarCallbacksMap;
type TS = IScrollbarStaticProps;
type TM = IScrollbarMutableProps;
/**
* A custom scrollbar component. Supports both `window` and `HTMLElement` containers.
*
* [Documentation](https://vevetjs.com/docs/Scrollbar)
*
* @group Components
*/
export declare class Scrollbar extends Module<TC, TS, TM> {
/** Get default static properties */
_getStatic(): TRequiredProps<TS>;
/** Get default mutable properties */
_getMutable(): TRequiredProps<TM>;
/**
* Scrollbar outer element.
*/
private _outer;
/**
* Scrollbar track element (the container of the thumb).
*/
private _track;
/**
* Scrollbar thumb element (draggable handle).
*/
private _thumb;
/** Save scroll value on swipe start */
private _valueOnSwipeStart;
/** Previous scroll value */
private _prevScrollValue;
/** Timeout for scroll action */
private _addInActionTimeout?;
/** Timeout for scroll action */
private _removeInActionTimeout?;
/** Detects if the container is RTL */
private _isRtl;
constructor(props?: TS & TM & TModuleOnCallbacksProps<TC, Scrollbar>, onCallbacks?: TModuleOnCallbacksProps<TC, Scrollbar>);
get prefix(): string;
/**
* Scrollbar outer element
*/
get outer(): HTMLElement;
/**
* The element to which the scrollbar is applied.
*/
get container(): Window | HTMLElement | import("..").Snap;
/**
* Scrollbar track element (the container of the thumb).
*/
get track(): HTMLElement;
/**
* Scrollbar thumb element (draggable handle).
*/
get thumb(): HTMLElement;
/** Scroll axis */
get axis(): "x" | "y";
/**
* The element where the scrollbar is appended.
* If `parent` is not set, it defaults to `container` or `document.body` (if applied to `window`).
*/
get parent(): HTMLElement;
/**
* The actual scrollable element.
* Returns `document.documentElement` for `window`, otherwise the `container` itself.
*/
get scrollElement(): HTMLElement | import("..").Snap;
/**
* Returns the total scroll width/height of the content.
*/
get scrollSize(): number;
/**
* Returns the total scrollable distance.
*/
get scrollableSize(): number;
/**
* Returns scrollTop or scrollLeft of the scrollable element.
*/
get scrollValue(): number;
/** Returns the current track size. */
get trackSize(): number;
/** Returns the current thumb size. */
get thumbSize(): number;
/** Handles property mutations */
protected _handleProps(props: Partial<TM>): void;
/** Create elements */
private _create;
/** Create outer element */
private _createOuter;
/** Create track element */
private _createTrack;
/** Create thumb element */
private _createThumb;
/** Set resize events */
private _setResize;
/** Set scroll events */
private _setOnscroll;
/** Set swipe events */
private _setSwipe;
/** Handles swipe start */
private _handleSwipeStart;
/** Handle swipe move */
private _handleSwipeMove;
/** Handle swipe end */
private _handleSwipeEnd;
/** Handle swipe touchmove */
private _handleSwipeTouchMove;
/** Handle swipe mousemove */
private _handleSwipeMouseMove;
/** Resize the scrollbar. */
resize(): void;
/** Render the scrollbar. */
private _render;
/** Handle scroll update */
private _onScroll;
/** Handle swipe move */
private _onSwipeMove;
/**
* Destroys the component and cleans up resources.
*/
protected _destroy(): void;
}
//# sourceMappingURL=index.d.ts.map