mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
280 lines
5.9 KiB
TypeScript
280 lines
5.9 KiB
TypeScript
// Type definitions for better-scroll 1.12
|
|
// Project: https://github.com/ustbhuangyi/better-scroll
|
|
// Definitions by: cloudstone <https://github.com/stoneChen>
|
|
// jack <https://github.com/cnjack>
|
|
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
|
|
|
// TypeScript Version: 2.2
|
|
export interface WheelOption {
|
|
selectedIndex: number;
|
|
rotate: number;
|
|
adjustTime: number;
|
|
wheelWrapperClass: string;
|
|
wheelItemClass: string;
|
|
}
|
|
|
|
export interface PageOption {
|
|
x: number;
|
|
y: number;
|
|
pageX: number;
|
|
pageY: number;
|
|
}
|
|
|
|
export interface SlideOption {
|
|
loop: boolean;
|
|
el: Element;
|
|
threshold: number;
|
|
stepX: number;
|
|
stepY: number;
|
|
speed: number;
|
|
listenFlick: boolean;
|
|
}
|
|
|
|
export interface ScrollBarOption {
|
|
fade: boolean;
|
|
}
|
|
|
|
export interface PullDownOption {
|
|
threshold: number;
|
|
stop: number;
|
|
}
|
|
|
|
export interface PullUpOption {
|
|
threshold: number;
|
|
}
|
|
|
|
export interface MouseWheelOption {
|
|
speed: number;
|
|
invert: boolean;
|
|
easeTime: number;
|
|
}
|
|
|
|
export interface ZoomOption {
|
|
start: number;
|
|
min: number;
|
|
max: number;
|
|
}
|
|
|
|
export interface InfinityOption {
|
|
fetch: (count: number) => void;
|
|
render: (item: any, div: Element) => Element;
|
|
createTombstone: () => Element;
|
|
}
|
|
|
|
export interface BounceObjectOption {
|
|
top?: boolean;
|
|
bottom?: boolean;
|
|
left?: boolean;
|
|
right?: boolean;
|
|
}
|
|
|
|
export interface DoubleClick {
|
|
delay: number;
|
|
}
|
|
|
|
export interface EaseOption {
|
|
swipe?: {
|
|
style: string;
|
|
fn: (t: number) => number;
|
|
};
|
|
swipeBounce?: {
|
|
style: string;
|
|
fn: (t: number) => number;
|
|
};
|
|
bounce?: {
|
|
style: string;
|
|
fn: (t: number) => number;
|
|
};
|
|
}
|
|
|
|
export interface BsOption {
|
|
startX: number;
|
|
startY: number;
|
|
scrollX: boolean;
|
|
scrollY: boolean;
|
|
freeScroll: boolean;
|
|
directionLockThreshold: number;
|
|
eventPassthrough: string | boolean;
|
|
click: boolean;
|
|
dblclick: boolean | DoubleClick;
|
|
tap: boolean;
|
|
bounce: boolean | BounceObjectOption;
|
|
bounceTime: number;
|
|
momentum: boolean;
|
|
momentumLimitTime: number;
|
|
momentumLimitDistance: number;
|
|
swipeTime: number;
|
|
swipeBounceTime: number;
|
|
deceleration: number;
|
|
flickLimitTime: number;
|
|
flickLimitDistance: number;
|
|
resizePolling: number;
|
|
probeType: number;
|
|
preventDefault: boolean;
|
|
preventDefaultException: object;
|
|
HWCompositing: boolean;
|
|
useTransition: boolean;
|
|
useTransform: boolean;
|
|
bindToWrapper: boolean;
|
|
disableMouse: boolean;
|
|
disableTouch: boolean;
|
|
observeDOM: boolean;
|
|
autoBlur: boolean;
|
|
stopPropagation: boolean;
|
|
/**
|
|
* for picker
|
|
* wheel: {
|
|
* selectedIndex: 0,
|
|
* rotate: 25,
|
|
* adjustTime: 400
|
|
* }
|
|
*/
|
|
wheel: Partial<WheelOption> | boolean;
|
|
/**
|
|
* for slide
|
|
* snap: {
|
|
* loop: boolean,
|
|
* el: domEl,
|
|
* threshold: 0.1,
|
|
* stepX: 100,
|
|
* stepY: 100,
|
|
* listenFlick: true
|
|
* }
|
|
*/
|
|
snap: Partial<SlideOption> | boolean;
|
|
/**
|
|
* for scrollbar
|
|
* scrollbar: {
|
|
* fade: true
|
|
* }
|
|
*/
|
|
scrollbar: Partial<ScrollBarOption> | boolean;
|
|
/**
|
|
* for pull down and refresh
|
|
* pullDownRefresh: {
|
|
* threshold: 50,
|
|
* stop: 20
|
|
* }
|
|
*/
|
|
pullDownRefresh: Partial<PullDownOption> | boolean;
|
|
/**
|
|
* for pull up and load
|
|
* pullUpLoad: {
|
|
* threshold: 50
|
|
* }
|
|
*/
|
|
pullUpLoad: Partial<PullUpOption> | boolean;
|
|
|
|
// mouseWheel: {
|
|
// speed: 20,
|
|
// invert: false,
|
|
// easeTime: 300
|
|
// }
|
|
mouseWheel: Partial<MouseWheelOption> | boolean;
|
|
|
|
// zoom: {
|
|
// start: 1,
|
|
// min: 1,
|
|
// max: 4
|
|
// }
|
|
zoom: Partial<ZoomOption> | boolean;
|
|
|
|
// https://ustbhuangyi.github.io/better-scroll/doc/zh-hans/options-advanced.html
|
|
infinity: Partial<InfinityOption> | boolean;
|
|
}
|
|
|
|
export interface Position {
|
|
x: number;
|
|
y: number;
|
|
}
|
|
|
|
export default class BScroll {
|
|
constructor(element: Element | string, options?: Partial<BsOption>);
|
|
|
|
x: number;
|
|
y: number;
|
|
maxScrollX: number;
|
|
maxScrollY: number;
|
|
movingDirectionX: number;
|
|
movingDirectionY: number;
|
|
directionX: number;
|
|
directionY: number;
|
|
enabled: boolean;
|
|
isInTransition: boolean;
|
|
isAnimating: boolean;
|
|
options: BsOption;
|
|
|
|
refresh(): void;
|
|
|
|
enable(): void;
|
|
|
|
disable(): void;
|
|
|
|
scrollBy(x: number, y: number, time?: number, easing?: object): void;
|
|
|
|
scrollTo(x: number, y: number, time?: number, easing?: object): void;
|
|
|
|
scrollToElement(el: HTMLElement | string, time?: number, offsetX?: number | boolean, offsetY?: number | boolean, easing?: object): void;
|
|
|
|
stop(): void;
|
|
|
|
destroy(): void;
|
|
|
|
goToPage(x: number, y: number, time?: number, easing?: object): void;
|
|
|
|
next(time?: number, easing?: object): void;
|
|
|
|
prev(time?: number, easing?: object): void;
|
|
|
|
getCurrentPage(): PageOption;
|
|
|
|
wheelTo(index: number): void;
|
|
|
|
getSelectedIndex(): number;
|
|
|
|
finishPullDown(): void;
|
|
|
|
finishPullUp(): void;
|
|
|
|
on(
|
|
type:
|
|
'beforeScrollStart' |
|
|
'scrollStart' |
|
|
'scrollCancel' |
|
|
'beforeScrollStart' |
|
|
'flick' |
|
|
'refresh' |
|
|
'destroy' |
|
|
'pullingDown' |
|
|
'pullingUp',
|
|
fn: () => any
|
|
): void;
|
|
|
|
on(
|
|
type:
|
|
'scroll' |
|
|
'scrollEnd' |
|
|
'touchEnd',
|
|
fn: (pos: Position) => any
|
|
): void;
|
|
|
|
off(
|
|
type:
|
|
'beforeScrollStart' |
|
|
'scrollStart' |
|
|
'scroll' |
|
|
'scrollCancel' |
|
|
'beforeScrollStart' |
|
|
'scrollEnd' |
|
|
'touchEnd' |
|
|
'flick' |
|
|
'refresh' |
|
|
'destroy' |
|
|
'pullingDown' |
|
|
'pullingUp',
|
|
fn: (...args: any[]) => void
|
|
): void;
|
|
|
|
trigger(type: string): void;
|
|
}
|