zscroller v0.7.1
zscroller
dom scroller based on zynga scroller
Example
http://localhost:6006/examples/
online example: http://yiminghe.github.io/zscroller/
install
API
typed
interface ViewportSize {
width: number;
height: number;
}
interface ContentSize {
width: number;
height: number;
}
interface X {
// scrollbar x size
width: number;
height?: number;
scrollbar?: {
style: any;
};
indicator?: {
style: any;
};
}
interface Y {
width?: number;
// scrollbar y height
height: number;
scrollbar?: {
style: any;
};
indicator?: {
style: any;
};
}
// minZoom defaults to 0.1
// maxZoom defaults to 10
// locking defaults to true
// defaultScrollX defaults to 0
// defaultScrollY defaults to 0
// defaultZoom defaults to 1
interface IZScrollerOption {
minZoom?: number;
maxZoom?: number;
minIndicatorSize?: number;
zooming?: boolean;
locking?: boolean;
viewport: IViewportSize;
content: IContentSize;
x?: X;
y?: Y;
defaultScrollX?:number;
defaultScrollY?:number;
defaultZoom?:number;
container?: HTMLElement;
scrollingComplete?: () => any;
onScroll?: (x: number, y: number, zoom: number) => any;
}
declare class ZScroller {
constructor(_options: ZScrollerOption);
scrollTo(x: number, y: number, animate: boolean): void;
scrollBy(x: number, y: number, animate: boolean): void;
getScrollbar(type: any): HTMLElement;
getScrollPosition(): {x:number;y:number;};
setDisabled(disabled: any): void;
// relayout
setDimensions({ viewport, content, x, y, }?: {
viewport?: ViewportSize;
content?: ContentSize;
x?: X;
y?: Y;
}): void;
destroy(): void;
}usage
import ZScroller from 'zscroller';
const zscroller = new ZScroller({
container: container,
viewport: {
height: container.clientHeight - 20, // padding
width: container.clientWidth - 20,
},
content: {
width: content.offsetWidth,
height: content.offsetHeight
},
x: {
width: container.current.clientWidth - 4, // padding
},
y: {
height: container.current.clientHeight - 4, // padding
},
onScroll(left, top) {
content.style.transform = `translate3d(${-left}px,${-top}px,0)`
content.style.webkitTransform = `translate3d(${-left}px,${-top}px,0)`;
}
});
container.appendChild(zscroller.getScrollbar('x'));
container.appendChild(zscroller.getScrollbar('y'));License
zscroller is released under the MIT license.
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
