view-scroller
Version:
page scroller plugin
102 lines (101 loc) • 2.72 kB
TypeScript
import { Scroller } from './main';
import { ScorllBarOptionsRequired, ScrollToJSON } from '../index';
declare class ScrollerEv {
width: number;
height: number;
offsetTop: number;
offsetLeft: number;
scrollWidth: number;
scrollHeight: number;
scrollTop: number;
scrollLeft: number;
clientWidth: number;
clientHeight: number;
clientTop: number;
clientLeft: number;
target: any;
}
/**
* 滚动插件的实现类
*/
export default class ScrollerBar extends Scroller {
#private;
private options;
/**
* 滚动插件外层Dom对象
*/
target: Element | null;
/**
* 滚动插件初始化的容器Dom对象
*/
currentTarget: Element | null;
cssSelector: string | null;
state: number;
constructor();
private getEvent;
/**
* 返回滚动插件的当前滚动事件对象
* @returns
*/
getScrollerEvent(): ScrollerEv;
/**
* 监听滚动方法
* @param callback 滚动回调
*/
onScroll(callback: Function): void;
/**
* 监听滚动到底部回调
* @param callback 回调
*/
onScrollBottom(callback: Function): void;
/**
* 监听滚动到顶部回调
* @param callback 回调
*/
onScrollTop(callback: Function): void;
/**
* 监听滚动到最左回调
* @param callback 回调
*/
onScrollLeft(callback: Function): void;
/**
* 监听滚动到最右回调
* @param callback 回调
*/
onScrollRight(callback: Function): void;
/**
* 监听下拉刷新方法
* @param callback 滚动回调
*/
onRefresh(callback: Function): void;
scrollXTo(value: number, duration?: number): void;
scrollYTo(value: number, duration?: number): void;
scrollTo({ x, y }: ScrollToJSON, duration?: number): void;
/**
* 初始化滚动条拖动的全局事件
*/
private dragInit;
/**
* 初始化滚动条
* @param el 需要初始化滚动条的html元素或css选择器
* @param options 初始化滚动条的参数
*/
scrollerInit(el: Node | string, options: ScorllBarOptionsRequired): any;
private getNested;
private thumbResizeHor;
private thumbResizeVer;
private getScrollClass;
private createVnode;
/**
* 容器大小发生变化时,更新滚动条位置和大小
*/
update(): void;
/**
* 滚动条初始化时的参数处理函数
* @param options 初始化滚动条的参数
*/
private optionsInit;
destroy(): void;
getState(): number;
}
export {};