UNPKG

anitimejs

Version:

Thư viện xử lý chuỗi số và thời gian trong JavaScript/Typescript

133 lines (132 loc) 4.69 kB
interface AnimationConfig { targets: string | HTMLElement | HTMLElement[] | Record<string, any> | NodeList; props: Record<string, number | string | Record<string, any>>; duration: number; delay?: number | ((el: any, i: number, total: number) => number); endDelay?: number; easing?: ((t: number) => number) | keyof typeof easingFunctions; round?: number | boolean; loop?: number | boolean; direction?: "normal" | "reverse" | "alternate" | "alternate-reverse"; update?: (currentState: any, progress: { completed: number; remaining: number; }) => void; begin?: () => void; complete?: () => void; autoplay?: boolean; } interface TimelineConfig { autoplay?: boolean; direction?: "normal" | "reverse" | "alternate" | "alternate-reverse"; loop?: number | boolean; update?: (progress: { completed: number; remaining: number; }) => void; complete?: () => void; } interface Animation { play: () => Animation; pause: () => Animation; restart: () => Animation; seek: (progress: number) => Animation; reverse: () => Animation; completed: Promise<void>; progress: number; cancel: () => void; } interface Timeline { add: (animationConfig: AnimationConfig, timePosition?: string | number) => Timeline; play: () => Timeline; pause: () => Timeline; restart: () => Timeline; seek: (progress: number) => Timeline; reverse: () => Timeline; cancel: () => void; completed: Promise<void>; } export declare const easingFunctions: { linear: (t: number) => number; easeInQuad: (t: number) => number; easeOutQuad: (t: number) => number; easeInOutQuad: (t: number) => number; easeInCubic: (t: number) => number; easeOutCubic: (t: number) => number; easeInOutCubic: (t: number) => number; easeInQuart: (t: number) => number; easeOutQuart: (t: number) => number; easeInOutQuart: (t: number) => number; easeInExpo: (t: number) => number; easeOutExpo: (t: number) => number; easeInOutExpo: (t: number) => number; easeOutBounce: (t: number) => number; easeInBounce: (t: number) => number; easeInOutBounce: (t: number) => number; easeInElastic: (t: number) => number; easeOutElastic: (t: number) => number; easeInOutElastic: (t: number) => number; spring: (t: number) => number; }; /** * Enhanced animate function */ export declare const animate: (config: AnimationConfig) => Animation; /** * Timeline for sequencing animations */ export declare const timeline: (config?: TimelineConfig) => Timeline; /** * Helper function to create staggered animations */ export declare const stagger: (value: number, options?: { start?: number; from?: number | "center" | "edges" | "first" | "last"; direction?: "normal" | "reverse"; grid?: [rows: number, cols: number]; axis?: "x" | "y"; easing?: (t: number) => number; }) => (el: any, i: number, total: number) => number; /** * Spring animation helper */ export declare const spring: (config?: { mass?: number; stiffness?: number; damping?: number; velocity?: number; }) => (t: number) => number; /** * Create a physics-based animation */ export declare const physics: (config: AnimationConfig & { physics?: { mass?: number; stiffness?: number; damping?: number; velocity?: number; }; }) => Animation; /** * Utility to create a sequence of animations */ export declare const sequence: (animations: AnimationConfig[]) => Timeline; /** * Create transform string from individual transform properties */ export declare const createTransform: (transforms: Record<string, number | string>) => string; /** * Quick one-shot animations for common use cases */ export declare const effects: { fadeIn: (targets: any, duration?: number, options?: {}) => Animation; fadeOut: (targets: any, duration?: number, options?: {}) => Animation; slideIn: (targets: any, direction?: string, distance?: string, duration?: number, options?: {}) => Animation; slideOut: (targets: any, direction?: string, distance?: string, duration?: number, options?: {}) => Animation; zoom: (targets: any, start?: number, end?: number, duration?: number, options?: {}) => Animation; pulse: (targets: any, scale?: number, duration?: number, options?: {}) => Animation; shake: (targets: any, intensity?: number, duration?: number, options?: {}) => Animation; flipIn: (targets: any, axis?: string, duration?: number, options?: {}) => Animation; bounce: (targets: any, height?: string, duration?: number, options?: {}) => Animation; }; export {};