diff --git a/iscroll/iscroll-5-lite.d.ts b/iscroll/iscroll-5-lite.d.ts new file mode 100644 index 000000000..f22ae6f89 --- /dev/null +++ b/iscroll/iscroll-5-lite.d.ts @@ -0,0 +1,39 @@ +// Type definitions for iScroll Lite 5 +// Project: http://cubiq.org/iscroll-5-ready-for-beta-test +// Definitions by: Christiaan Rakowski +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +interface IScrollOptions { + //hScroll?: boolean; + //vScroll?: boolean; + + scrollX?: boolean; + scrollY?: boolean; + + x?: number; + y?: number; + bounce?: boolean; + bounceLock?: boolean; + momentum?: boolean; + lockDirection?: boolean; + useTransform?: boolean; + useTransition?: boolean; +} + +declare class IScroll { + + constructor (element: string, options?: IScrollOptions); + constructor (element: HTMLElement, options?: IScrollOptions); + + destroy(): void; + refresh(): void; + scrollTo(x: number, y: number, time?: number, relative?: boolean): void; + scrollToElement(element: string, time?: number): void; + scrollToElement(element: HTMLElement, time?: number): void; + disable(): void; + enable(): void; + stop(): void; + + // Events + on: (type: string, fn: () => void) => void; +} diff --git a/iscroll/iscroll-5-tests.ts b/iscroll/iscroll-5-tests.ts new file mode 100644 index 000000000..e05761e71 --- /dev/null +++ b/iscroll/iscroll-5-tests.ts @@ -0,0 +1,36 @@ +/// + +var myScroll1 = new IScroll('#wrapper'); +var myScroll2 = new IScroll('#wrapper', { hScrollbar: false, vScrollbar: false }); +var myScroll3 = new IScroll('#wrapper', { + snap: true, + momentum: false, + hScrollbar: false, + vScrollbar: false +}); +var myScroll4 = new IScroll('#wrapper', { + snap: 'li', + momentum: false, + hScrollbar: false, + vScrollbar: false +}); +var myScroll6 = new IScroll('#wrapper', { scrollbarClass: 'myScrollbar' }); +var myScroll7 = new IScroll('#wrapper', { bounceEasing: 'elastic', bounceTime: 1200 }); + +var myScroll8 = new IScroll('#wrapper', { eventPassthrough: true, scrollX: true, scrollY: false, preventDefault: false }); + +myScroll1.refresh(); +myScroll1.scrollTo(0, 100); +myScroll1.scrollTo(0, 100, 200); +myScroll1.scrollTo(0, 100, 200, true); + +myScroll1.scrollToElement('selectedElement'); +myScroll1.scrollToElement('selectedElement', 250); + +myScroll1.scrollToElement(document.getElementById('selectedElement')); +myScroll1.scrollToElement(document.getElementById('selectedElement'), 250); + +myScroll2.on('scrollStart', function () { console.log('scroll started'); }); + +var myScroll9 = new IScroll(document.getElementById('wrapper')); +var myScroll10 = new IScroll(document.getElementById('wrapper'), { scrollbarClass: 'myScrollbar' }); \ No newline at end of file diff --git a/iscroll/iscroll-5.d.ts b/iscroll/iscroll-5.d.ts new file mode 100644 index 000000000..abd793027 --- /dev/null +++ b/iscroll/iscroll-5.d.ts @@ -0,0 +1,91 @@ +// Type definitions for iScroll 5 +// Project: http://cubiq.org/iscroll-5-ready-for-beta-test +// Definitions by: Christiaan Rakowski +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +interface IScrollOptions { + //hScroll?: boolean; + //vScroll?: boolean; + x?: number; + y?: number; + bounce?: boolean; + bounceLock?: boolean; + momentum?: boolean; + lockDirection?: boolean; + useTransform?: boolean; + useTransition?: boolean; + topOffset?: number; + checkDOMChanges?: boolean; + handleClick?: boolean; + + // Scrollbar + hScrollbar?: boolean; + vScrollbar?: boolean; + fixedScrollbar?: boolean; + hideScrollbar?: boolean; + fadeScrollbar?: boolean; + scrollbarClass?: string; + + // Zoom + zoom?: boolean; + zoomMin?: number; + zoomMax?: number; + doubleTapZoom?: number; + wheelAction?: string; + + + ///String or boolean + snap?: any; + snapThreshold?: number; + + //new in IScroll 5? + + resizeIndicator?: boolean; + mouseWheelSpeed?: number; + startX?: number; + startY?: number; + scrollX?: boolean; + scrollY?: boolean; + directionLockThreshold?: number; + + bounceTime?: number; + + ///String or function + bounceEasing?: any; + + preventDefault?: boolean; + preventDefaultException?: boolean; + + HWCompositing?: boolean; + + freeScroll?: boolean; + + resizePolling?: number; + tap?: boolean; + click?: boolean; + invertWheelDirection?: boolean; + + ///Boolean or string + eventPassthrough?: any; +} + +declare class IScroll { + + constructor (element: string, options?: IScrollOptions); + constructor (element: HTMLElement, options?: IScrollOptions); + + destroy(): void; + refresh(): void; + scrollTo(x: number, y: number, time?: number, relative?: boolean): void; + scrollToElement(element: string, time?: number): void; + scrollToElement(element: HTMLElement, time?: number): void; + scrollToPage(pageX: number, pageY: number, time?: number): void; + disable(): void; + enable(): void; + stop(): void; + zoom(x: number, y: number, scale: number, time?: number): void; + isReady(): boolean; + + // Events + on: (type: string, fn: () => void) => void; +}