UNPKG

text-particle

Version:
75 lines (74 loc) 2.28 kB
import { FilterRGBA, Particle } from "./particle"; import { Renderer } from "./renderer/renderer"; export interface ParticleConfig { source: string; offsetX: number; offsetY: number; /** * Control Particle Radius */ particleRadius: number; /** * Control the sparsity of the particle distribution */ particleGap: number; /** * Move 1/n of remaining distance per frame. * * Make 'enableContinuousEasing' true to take this option effect. * * Default is 30. */ moveProportionPerFrame: number; /** * Make 'enableContinuousEasing' true to take this option effect */ showMouseCircle: boolean; enableContinuousEasing: boolean; enableWebGL: boolean; /** * Control Particle Radius * * Tip: Setting a color will improve particle performance */ color?: string; /** * Default is false. */ disableCache?: boolean; pixelFilter?: FilterRGBA; } export interface ParticleCache { config: ParticleConfig; particles: Particle[]; } export type ParticleEffectRoot = HTMLElement | HTMLCanvasElement; export declare abstract class ParticleEffect { root: ParticleEffectRoot; protected renderer: Renderer; protected canvas: HTMLCanvasElement; protected isRendering: boolean; protected cacheMap: Map<string, ParticleCache>; protected unBindMouseEventCallback: (() => void) | null; protected lastAnimationBeginTime: number; protected animationTime: number; protected particles: Particle[]; protected mouseParticle: Particle | null; protected _config: ParticleConfig; protected constructor(root: ParticleEffectRoot, config: Partial<ParticleConfig>); destroy(): void; /** * * @param newSource * @param time this option will be disabled if 'enableContinuousEasing' is set to true * @returns */ transitionTo(newSource: string, time: number, config?: Partial<ParticleConfig>): Promise<void>; resize(): void; render(source?: string): Promise<void>; protected generateParticles(source: string): Promise<Particle[]>; private enableMouseListener; private disableMouseListener; private updateParticleEase; private updateParticleContinuous; }