hover-effects-ts
Version:
A collection of beautiful hover effects for images using canvas
68 lines • 2.13 kB
TypeScript
import { HoverEffect } from '../types';
export default class DotMatrixHover implements HoverEffect {
private readonly id;
private element;
private canvas;
private ctx;
private tempCanvas;
private tempCtx;
private isHovering;
private mousePos;
private animationFrame;
private imageData;
private lastRenderTime;
private readonly FPS;
private readonly frameInterval;
private frameCount;
private ledPath;
private radius;
private softEdge;
private ledSize;
private ledSpacing;
private scale;
private glow;
private fadeExp;
private colorMode;
private animationType;
private animationSpeed;
private animationIntensity;
private driftOffsets;
constructor(options?: {
radius?: number;
softEdge?: number;
ledSize?: number;
ledSpacing?: number;
scale?: number;
glow?: boolean;
fadeExp?: number;
colorMode?: 'mono' | 'rgb';
animationType?: 'none' | 'wave' | 'pulse' | 'drift' | 'ripple' | 'rotation';
animationSpeed?: number;
animationIntensity?: number;
});
private buildLedPath;
private initDriftOffsets;
private updateDriftOffsets;
private getAnimationOffset;
private onMouseEnter;
private onMouseLeave;
private onMouseMove;
private updateImageData;
private render;
attach(element: HTMLElement): void;
detach(): void;
destroy(): void;
setRadius(radius: number): void;
setLedSize(ledSize: number): void;
setLedSpacing(ledSpacing: number): void;
setGlow(glow: boolean): void;
setSoftEdge(softEdge: number): void;
setScale(scale: number): void;
setFadeExp(fadeExp: number): void;
setColorMode(colorMode: 'mono' | 'rgb'): void;
setAnimationType(animationType: 'none' | 'wave' | 'pulse' | 'drift' | 'ripple' | 'rotation'): void;
setAnimationSpeed(animationSpeed: number): void;
setAnimationIntensity(animationIntensity: number): void;
addDriftOffset(x: number, y: number, vx: number, vy: number): void;
}
//# sourceMappingURL=DotMatrixHover.d.ts.map