@opensig/opendesign
Version:
<p align="center"><img src="../docs/public/opendesign-logo-light.png"/></p> <h1 align="center">opendesign</h1> <p align="center">一个 Vue 3 组件库</p> <p align="center"><b>皮肤可定制,使用 TypeScript</b></p>
32 lines (31 loc) • 1.25 kB
TypeScript
import { PointMoveT } from '../../_utils/types';
import { default as Effect, EffectOptionT } from './effect';
export interface GalleryT {
active: (slideIndex: number) => Promise<null | number>;
loopRange: () => void;
transformX: (value: number, animate: boolean) => Promise<null | number>;
}
export interface GalleryOptionT extends EffectOptionT {
alignType?: 'center' | 'left';
onChanged?: (from: number, to: number) => void;
}
export default class Gallery extends Effect {
private container;
private slideList;
private alignType;
private moveValue;
private isChanging;
private isSliding;
private oldMoveValue;
private destroyObserver;
private resolveArr;
constructor(slideElList: HTMLElement[], slideContainer: HTMLElement, activeIndex: number, options?: GalleryOptionT);
update(slideElList: HTMLElement[], slideContainer: HTMLElement): void;
handleTouchStart(): void;
handleTouchMove(pos: PointMoveT, e: TouchEvent): void;
handleTouchEnd(pos: PointMoveT): number;
active(toIndex: number, animate?: boolean, force?: boolean): Promise<null | number>;
loopRange(): void;
transformX(value: number, animate?: boolean): Promise<null | number>;
destroyed(): void;
}