falling-animation 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +251 -0
- package/dist/falling-animation.cjs.js +670 -0
- package/dist/falling-animation.cjs.js.map +1 -0
- package/dist/falling-animation.esm.js +663 -0
- package/dist/falling-animation.esm.js.map +1 -0
- package/dist/falling-animation.umd.js +676 -0
- package/dist/falling-animation.umd.js.map +1 -0
- package/dist/falling-animation.umd.min.js +9 -0
- package/dist/falling-animation.umd.min.js.map +1 -0
- package/dist/types/FallingAnimation.d.ts +77 -0
- package/dist/types/Particle.d.ts +52 -0
- package/dist/types/animations/index.d.ts +45 -0
- package/dist/types/index.d.ts +12 -0
- package/dist/types/types.d.ts +100 -0
- package/dist/types/utils.d.ts +51 -0
- package/package.json +46 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"falling-animation.umd.js","sources":["../src/utils.ts","../src/animations/index.ts","../src/Particle.ts","../src/FallingAnimation.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports):"function"==typeof define&&define.amd?define(["exports"],i):i((t="undefined"!=typeof globalThis?globalThis:t||self).FallingAnimation={})}(this,function(t){"use strict";function i(t,i){return Math.random()*(i-t)+t}function e(t){return i(t.min,t.max)}let n=0;const s=(t,i)=>{0===t.vy&&0===t.vx||(t.y+=t.vy*i,t.x+=t.vx*i)},a={fall:s,swing:(t,i,e)=>{if(t.rotation=20*Math.sin(.002*(e+t.phase)),0===t.vy&&0===t.vx)return;t.y+=t.vy*i;const n=30*Math.sin(.002*(e+t.phase));t.x+=t.vx*i+.05*n},rotate:(t,i)=>{t.rotation+=t.rotationSpeed*i,0===t.vy&&0===t.vx||(t.y+=t.vy*i,t.x+=t.vx*i)},flutter:(t,i,e)=>{const n=.005;if(t.rotation=30*Math.sin((e+t.phase)*n),0===t.vy&&0===t.vx)return;const s=40*Math.sin((e+t.phase)*n);t.x+=t.vx*i+.03*s;const a=.3*Math.sin((e+t.phase)*n*2);t.y+=(t.vy+a)*i},spiral:(t,i,e)=>{const n=.003*(e+t.phase);if(t.rotation=n*(180/Math.PI),0===t.vy&&0===t.vx)return;t.y+=t.vy*i,t.x+=t.vx*i+25*Math.cos(n)*.02},tumble:(t,i,e)=>{var n,s,a;const o=null!==(n=t.data.tumbleSpeed)&&void 0!==n?n:5;if(t.rotation+=o*i,0===t.vy&&0===t.vx)return;const r=null!==(s=t.data.wobbleX)&&void 0!==s?s:.02,h=null!==(a=t.data.wobbleY)&&void 0!==a?a:.01;t.y+=t.vy*i,t.x+=t.vx*i+20*Math.sin((e+t.phase)*r)*.02,t.y+=.5*Math.sin((e+1.5*t.phase)*h)},zigzag:(t,i,e)=>{const n=(e+t.phase)%500/500,s=2*Math.abs(2*n-1)-1;if(t.rotation=25*s,0===t.vy&&0===t.vx)return;t.y+=t.vy*i,t.x+=t.vx*i+50*s*.02},float:(t,i,e)=>{const n=.001;if(t.rotation=10*Math.sin((e+t.phase)*n),0===t.vy&&0===t.vx)return;const s=5*Math.sin((e+t.phase)*n*2);t.y+=(.5*t.vy+.01*s)*i;const a=20*Math.sin((e+t.phase)*n);t.x+=t.vx*i+.01*a}};function o(t){var i;return null!==(i=a[t])&&void 0!==i?i:s}class r{constructor(t){this.options=t,this.id=++n,this.age=0,this.phase=Math.random()*Math.PI*2,this.data={},this.containerWidth=t.container.clientWidth,this.containerHeight=t.container.clientHeight;const s=function(t){var i;const e=t.reduce((t,i)=>{var e;return t+(null!==(e=i.weight)&&void 0!==e?e:1)},0);let n=Math.random()*e;for(const e of t)if(n-=null!==(i=e.weight)&&void 0!==i?i:1,n<=0)return e;return t[t.length-1]}(t.objects);var a;this.x=i(-50,this.containerWidth+50),this.y=-50,this.vy=.04*e(t.speed),this.vx=.04*t.wind*i(.5,1.5),this.size=e(t.size),this.opacity=e(t.opacity),this.rotation=i(0,360),this.rotationSpeed=i(-3,3),this.animation=(a=t.animation)[Math.floor(Math.random()*a.length)],this.initAnimationData(),this.element=this.createElement(s)}initAnimationData(){"tumble"===this.animation&&(this.data.tumbleSpeed=i(3,8),this.data.wobbleX=i(.01,.03),this.data.wobbleY=i(.005,.015))}createElement(t){var i,e,n,s;const a=document.createElement("div");switch(a.className="falling-particle",a.setAttribute("data-particle-id",String(this.id)),t.type){case"emoji":a.textContent=null!==(i=t.content)&&void 0!==i?i:"❄️",a.style.fontSize=`${this.size}px`,a.style.lineHeight="1";break;case"image":const o=document.createElement("img");o.src=null!==(n=null!==(e=t.src)&&void 0!==e?e:t.content)&&void 0!==n?n:"",o.alt="",o.style.width=`${this.size}px`,o.style.height=`${this.size}px`,o.style.objectFit="contain",o.draggable=!1,a.appendChild(o);break;case"html":a.innerHTML=null!==(s=t.content)&&void 0!==s?s:""}return Object.assign(a.style,{position:"absolute",pointerEvents:"none",userSelect:"none",willChange:"transform, opacity",opacity:String(this.opacity),left:"0",top:"0",transform:this.getTransform()}),a}getTransform(){return`translate3d(${this.x}px, ${this.y}px, 0) rotate(${this.rotation}deg)`}update(t,i){this.age+=t;o(this.animation)(this,t,i),this.element.style.transform=this.getTransform()}isOutOfBounds(){return this.y>this.containerHeight+100||this.x<-100||this.x>this.containerWidth+100}updateContainerSize(t,i){this.containerWidth=t,this.containerHeight=i}destroy(){this.element.remove()}}const h={speed:{min:2,max:5},spawnRate:3,maxParticles:50,animation:["fall"],size:{min:20,max:40},opacity:{min:.6,max:1},wind:0,autoStart:!0,zIndex:9999,responsive:!0};class l{constructor(t){if(this.particles=[],this.wrapper=null,this.isRunning=!1,this.isPaused=!1,this.animationId=null,this.lastSpawnTime=0,this.startTime=0,this.lastFrameTime=0,this.resizeHandler=null,this.animate=t=>{if(!this.isRunning)return;0===this.lastFrameTime&&(this.lastFrameTime=t,this.startTime=t);const i=Math.min(t-this.lastFrameTime,50),e=t-this.startTime;this.lastFrameTime=t;const n=1e3/this.options.spawnRate;t-this.lastSpawnTime>=n&&(this.spawnParticle(),this.lastSpawnTime=t);const s=[];for(const t of this.particles)t.update(i,e),t.isOutOfBounds()&&s.push(t);s.forEach(t=>this.removeParticle(t)),this.animationId=requestAnimationFrame(this.animate)},!t.objects||0===t.objects.length)throw new Error('[falling-animation] "objects" option is required and must not be empty');this.options=this.resolveOptions(t),this.createWrapper(),this.options.responsive&&this.setupResizeHandler(),this.options.autoStart&&this.start()}resolveOptions(t){var i,e,n,s,a,o,r,l,p;const c=function(t){if(!t)return document.body;if("string"==typeof t){return document.querySelector(t)||(console.warn(`[falling-animation] Container "${t}" not found, using document.body`),document.body)}return t}(t.container);let d;return d=t.animation?"string"==typeof t.animation?[t.animation]:t.animation:h.animation,{container:c,objects:t.objects,speed:null!==(i=t.speed)&&void 0!==i?i:h.speed,spawnRate:null!==(e=t.spawnRate)&&void 0!==e?e:h.spawnRate,maxParticles:null!==(n=t.maxParticles)&&void 0!==n?n:h.maxParticles,animation:d,size:null!==(s=t.size)&&void 0!==s?s:h.size,opacity:null!==(a=t.opacity)&&void 0!==a?a:h.opacity,wind:null!==(o=t.wind)&&void 0!==o?o:h.wind,autoStart:null!==(r=t.autoStart)&&void 0!==r?r:h.autoStart,zIndex:null!==(l=t.zIndex)&&void 0!==l?l:h.zIndex,responsive:null!==(p=t.responsive)&&void 0!==p?p:h.responsive}}createWrapper(){if(this.wrapper=document.createElement("div"),this.wrapper.className="falling-animation-wrapper",Object.assign(this.wrapper.style,{position:this.options.container===document.body?"fixed":"absolute",top:"0",left:"0",width:"100%",height:"100%",overflow:"hidden",pointerEvents:"none",zIndex:String(this.options.zIndex)}),this.options.container!==document.body){"static"===getComputedStyle(this.options.container).position&&(this.options.container.style.position="relative")}this.options.container.appendChild(this.wrapper)}setupResizeHandler(){this.resizeHandler=function(t,i){let e=!1;return function(...n){e||(t.apply(this,n),e=!0,setTimeout(()=>e=!1,i))}}(()=>{const t=this.options.container.clientWidth,i=this.options.container.clientHeight;this.particles.forEach(e=>{e.updateContainerSize(t,i)})},200),window.addEventListener("resize",this.resizeHandler)}spawnParticle(){if(this.particles.length>=this.options.maxParticles)return;const t=new r(this.options);this.particles.push(t),this.wrapper&&this.wrapper.appendChild(t.element)}removeParticle(t){const i=this.particles.indexOf(t);i>-1&&(this.particles.splice(i,1),t.destroy())}start(){this.isRunning||(this.isRunning=!0,this.isPaused=!1,this.lastFrameTime=0,this.lastSpawnTime=0,this.animationId=requestAnimationFrame(this.animate))}stop(){this.isRunning=!1,this.isPaused=!1,null!==this.animationId&&(cancelAnimationFrame(this.animationId),this.animationId=null),this.particles.forEach(t=>t.destroy()),this.particles=[]}pause(){this.isRunning&&!this.isPaused&&(this.isPaused=!0,this.isRunning=!1,null!==this.animationId&&(cancelAnimationFrame(this.animationId),this.animationId=null))}resume(){!this.isRunning&&this.isPaused&&(this.isRunning=!0,this.isPaused=!1,this.lastFrameTime=0,this.animationId=requestAnimationFrame(this.animate))}setOptions(t){t.speed&&(this.options.speed=t.speed),void 0!==t.spawnRate&&(this.options.spawnRate=t.spawnRate),void 0!==t.maxParticles&&(this.options.maxParticles=t.maxParticles),t.animation&&(this.options.animation="string"==typeof t.animation?[t.animation]:t.animation),t.size&&(this.options.size=t.size),t.opacity&&(this.options.opacity=t.opacity),void 0!==t.wind&&(this.options.wind=t.wind),t.objects&&(this.options.objects=t.objects)}getParticleCount(){return this.particles.length}getIsRunning(){return this.isRunning}getIsPaused(){return this.isPaused}destroy(){this.stop(),this.wrapper&&(this.wrapper.remove(),this.wrapper=null),this.resizeHandler&&(window.removeEventListener("resize",this.resizeHandler),this.resizeHandler=null)}}
|
|
2
|
+
/**
|
|
3
|
+
* falling-animation
|
|
4
|
+
* A lightweight, customizable falling objects animation library
|
|
5
|
+
*
|
|
6
|
+
* @author phongdh
|
|
7
|
+
* @license MIT
|
|
8
|
+
*/t.FallingAnimation=l,t.animations=a,t.default=l,t.getAnimation=o,Object.defineProperty(t,"__esModule",{value:!0})});
|
|
9
|
+
//# sourceMappingURL=falling-animation.umd.min.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"falling-animation.umd.min.js","sources":["../src/utils.ts","../src/animations/index.ts","../src/Particle.ts","../src/FallingAnimation.ts"],"sourcesContent":[null,null,null,null],"names":["randomRange","min","max","Math","random","randomFromRange","range","idCounter","fall","particle","deltaTime","vy","vx","y","x","animations","swing","elapsed","rotation","sin","phase","swingOffset","rotate","rotationSpeed","flutter","flutterFrequency","wobble","spiral","angle","PI","cos","tumble","tumbleSpeed","_a","data","wobbleX","_b","wobbleY","_c","zigzag","t","triangleWave","abs","float","floatFrequency","yWobble","xDrift","getAnimation","name","Particle","constructor","options","this","id","age","containerWidth","container","clientWidth","containerHeight","clientHeight","object","items","totalWeight","reduce","sum","item","weight","length","weightedRandomPick","objects","array","speed","wind","size","opacity","animation","floor","initAnimationData","element","createElement","document","className","setAttribute","String","type","textContent","content","style","fontSize","lineHeight","img","src","alt","width","height","objectFit","draggable","appendChild","innerHTML","_d","Object","assign","position","pointerEvents","userSelect","willChange","left","top","transform","getTransform","update","animationFn","isOutOfBounds","updateContainerSize","destroy","remove","DEFAULTS","spawnRate","maxParticles","autoStart","zIndex","responsive","FallingAnimation","particles","wrapper","isRunning","isPaused","animationId","lastSpawnTime","startTime","lastFrameTime","resizeHandler","animate","currentTime","spawnInterval","spawnParticle","particlesToRemove","push","forEach","p","removeParticle","requestAnimationFrame","Error","resolveOptions","createWrapper","setupResizeHandler","start","body","querySelector","console","warn","resolveContainer","_e","_f","_g","_h","_j","overflow","getComputedStyle","func","limit","inThrottle","args","apply","setTimeout","throttle","window","addEventListener","index","indexOf","splice","stop","cancelAnimationFrame","pause","resume","setOptions","newOptions","undefined","getParticleCount","getIsRunning","getIsPaused","removeEventListener"],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FallingAnimation - Main class for creating falling object animations
|
|
3
|
+
*/
|
|
4
|
+
import { FallingAnimationOptions } from './types';
|
|
5
|
+
export declare class FallingAnimation {
|
|
6
|
+
private options;
|
|
7
|
+
private particles;
|
|
8
|
+
private wrapper;
|
|
9
|
+
private isRunning;
|
|
10
|
+
private isPaused;
|
|
11
|
+
private animationId;
|
|
12
|
+
private lastSpawnTime;
|
|
13
|
+
private startTime;
|
|
14
|
+
private lastFrameTime;
|
|
15
|
+
private resizeHandler;
|
|
16
|
+
constructor(options: FallingAnimationOptions);
|
|
17
|
+
/**
|
|
18
|
+
* Merge user options with defaults
|
|
19
|
+
*/
|
|
20
|
+
private resolveOptions;
|
|
21
|
+
/**
|
|
22
|
+
* Create wrapper element for particles
|
|
23
|
+
*/
|
|
24
|
+
private createWrapper;
|
|
25
|
+
/**
|
|
26
|
+
* Setup resize handler for responsive behavior
|
|
27
|
+
*/
|
|
28
|
+
private setupResizeHandler;
|
|
29
|
+
/**
|
|
30
|
+
* Spawn a new particle
|
|
31
|
+
*/
|
|
32
|
+
private spawnParticle;
|
|
33
|
+
/**
|
|
34
|
+
* Remove a particle
|
|
35
|
+
*/
|
|
36
|
+
private removeParticle;
|
|
37
|
+
/**
|
|
38
|
+
* Main animation loop
|
|
39
|
+
*/
|
|
40
|
+
private animate;
|
|
41
|
+
/**
|
|
42
|
+
* Start the animation
|
|
43
|
+
*/
|
|
44
|
+
start(): void;
|
|
45
|
+
/**
|
|
46
|
+
* Stop the animation and clear all particles
|
|
47
|
+
*/
|
|
48
|
+
stop(): void;
|
|
49
|
+
/**
|
|
50
|
+
* Pause the animation (keeps particles in place)
|
|
51
|
+
*/
|
|
52
|
+
pause(): void;
|
|
53
|
+
/**
|
|
54
|
+
* Resume a paused animation
|
|
55
|
+
*/
|
|
56
|
+
resume(): void;
|
|
57
|
+
/**
|
|
58
|
+
* Update options dynamically
|
|
59
|
+
*/
|
|
60
|
+
setOptions(newOptions: Partial<FallingAnimationOptions>): void;
|
|
61
|
+
/**
|
|
62
|
+
* Get current particle count
|
|
63
|
+
*/
|
|
64
|
+
getParticleCount(): number;
|
|
65
|
+
/**
|
|
66
|
+
* Check if animation is running
|
|
67
|
+
*/
|
|
68
|
+
getIsRunning(): boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Check if animation is paused
|
|
71
|
+
*/
|
|
72
|
+
getIsPaused(): boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Destroy the animation and clean up
|
|
75
|
+
*/
|
|
76
|
+
destroy(): void;
|
|
77
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Particle class - manages individual falling objects
|
|
3
|
+
*/
|
|
4
|
+
import { ParticleState, AnimationType, ResolvedOptions } from './types';
|
|
5
|
+
export declare class Particle implements ParticleState {
|
|
6
|
+
id: number;
|
|
7
|
+
element: HTMLElement;
|
|
8
|
+
x: number;
|
|
9
|
+
y: number;
|
|
10
|
+
vx: number;
|
|
11
|
+
vy: number;
|
|
12
|
+
rotation: number;
|
|
13
|
+
rotationSpeed: number;
|
|
14
|
+
size: number;
|
|
15
|
+
opacity: number;
|
|
16
|
+
animation: AnimationType;
|
|
17
|
+
age: number;
|
|
18
|
+
phase: number;
|
|
19
|
+
data: Record<string, number>;
|
|
20
|
+
private containerWidth;
|
|
21
|
+
private containerHeight;
|
|
22
|
+
private options;
|
|
23
|
+
constructor(options: ResolvedOptions);
|
|
24
|
+
/**
|
|
25
|
+
* Initialize animation-specific data
|
|
26
|
+
*/
|
|
27
|
+
private initAnimationData;
|
|
28
|
+
/**
|
|
29
|
+
* Create DOM element for the particle
|
|
30
|
+
*/
|
|
31
|
+
private createElement;
|
|
32
|
+
/**
|
|
33
|
+
* Get CSS transform string
|
|
34
|
+
*/
|
|
35
|
+
private getTransform;
|
|
36
|
+
/**
|
|
37
|
+
* Update particle state
|
|
38
|
+
*/
|
|
39
|
+
update(deltaTime: number, elapsed: number): void;
|
|
40
|
+
/**
|
|
41
|
+
* Check if particle is out of bounds
|
|
42
|
+
*/
|
|
43
|
+
isOutOfBounds(): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Update container dimensions (for resize handling)
|
|
46
|
+
*/
|
|
47
|
+
updateContainerSize(width: number, height: number): void;
|
|
48
|
+
/**
|
|
49
|
+
* Remove particle from DOM
|
|
50
|
+
*/
|
|
51
|
+
destroy(): void;
|
|
52
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Animation functions for falling particles
|
|
3
|
+
* Each animation modifies particle state based on deltaTime and elapsed time
|
|
4
|
+
*/
|
|
5
|
+
import { AnimationFunction, AnimationRegistry } from '../types';
|
|
6
|
+
/**
|
|
7
|
+
* Simple vertical fall - no special effects
|
|
8
|
+
*/
|
|
9
|
+
export declare const fall: AnimationFunction;
|
|
10
|
+
/**
|
|
11
|
+
* Swing - pendulum-like swinging motion while falling
|
|
12
|
+
*/
|
|
13
|
+
export declare const swing: AnimationFunction;
|
|
14
|
+
/**
|
|
15
|
+
* Rotate - continuous 360° rotation while falling
|
|
16
|
+
*/
|
|
17
|
+
export declare const rotate: AnimationFunction;
|
|
18
|
+
/**
|
|
19
|
+
* Flutter - butterfly-like fluttering motion
|
|
20
|
+
*/
|
|
21
|
+
export declare const flutter: AnimationFunction;
|
|
22
|
+
/**
|
|
23
|
+
* Spiral - spiraling down pattern
|
|
24
|
+
*/
|
|
25
|
+
export declare const spiral: AnimationFunction;
|
|
26
|
+
/**
|
|
27
|
+
* Tumble - chaotic tumbling motion
|
|
28
|
+
*/
|
|
29
|
+
export declare const tumble: AnimationFunction;
|
|
30
|
+
/**
|
|
31
|
+
* Zigzag - zigzag falling pattern
|
|
32
|
+
*/
|
|
33
|
+
export declare const zigzag: AnimationFunction;
|
|
34
|
+
/**
|
|
35
|
+
* Float - slow floating descent with gentle movement
|
|
36
|
+
*/
|
|
37
|
+
export declare const float: AnimationFunction;
|
|
38
|
+
/**
|
|
39
|
+
* Animation registry - all available animations
|
|
40
|
+
*/
|
|
41
|
+
export declare const animations: AnimationRegistry;
|
|
42
|
+
/**
|
|
43
|
+
* Get animation function by name
|
|
44
|
+
*/
|
|
45
|
+
export declare function getAnimation(name: string): AnimationFunction;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* falling-animation
|
|
3
|
+
* A lightweight, customizable falling objects animation library
|
|
4
|
+
*
|
|
5
|
+
* @author phongdh
|
|
6
|
+
* @license MIT
|
|
7
|
+
*/
|
|
8
|
+
export { FallingAnimation } from './FallingAnimation';
|
|
9
|
+
export type { FallingAnimationOptions, FallingObject, FallingObjectType, AnimationType, RangeValue } from './types';
|
|
10
|
+
export { animations, getAnimation } from './animations';
|
|
11
|
+
import { FallingAnimation } from './FallingAnimation';
|
|
12
|
+
export default FallingAnimation;
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for falling-animation package
|
|
3
|
+
*/
|
|
4
|
+
/** Object type that can fall */
|
|
5
|
+
export type FallingObjectType = 'emoji' | 'image' | 'html';
|
|
6
|
+
/** Single falling object configuration */
|
|
7
|
+
export interface FallingObject {
|
|
8
|
+
/** Type of the object */
|
|
9
|
+
type: FallingObjectType;
|
|
10
|
+
/** Content: emoji string, image URL, or HTML string */
|
|
11
|
+
content?: string;
|
|
12
|
+
/** Image source (for type: 'image') */
|
|
13
|
+
src?: string;
|
|
14
|
+
/** Optional weight for random selection (default: 1) */
|
|
15
|
+
weight?: number;
|
|
16
|
+
}
|
|
17
|
+
/** Range value for min/max configuration */
|
|
18
|
+
export interface RangeValue {
|
|
19
|
+
min: number;
|
|
20
|
+
max: number;
|
|
21
|
+
}
|
|
22
|
+
/** Available animation types */
|
|
23
|
+
export type AnimationType = 'fall' | 'swing' | 'rotate' | 'flutter' | 'spiral' | 'tumble' | 'zigzag' | 'float';
|
|
24
|
+
/** Animation function signature */
|
|
25
|
+
export type AnimationFunction = (particle: ParticleState, deltaTime: number, elapsed: number) => void;
|
|
26
|
+
/** Internal particle state */
|
|
27
|
+
export interface ParticleState {
|
|
28
|
+
/** Unique identifier */
|
|
29
|
+
id: number;
|
|
30
|
+
/** DOM element reference */
|
|
31
|
+
element: HTMLElement;
|
|
32
|
+
/** Current X position */
|
|
33
|
+
x: number;
|
|
34
|
+
/** Current Y position */
|
|
35
|
+
y: number;
|
|
36
|
+
/** Horizontal velocity */
|
|
37
|
+
vx: number;
|
|
38
|
+
/** Vertical velocity (speed) */
|
|
39
|
+
vy: number;
|
|
40
|
+
/** Current rotation angle (degrees) */
|
|
41
|
+
rotation: number;
|
|
42
|
+
/** Rotation speed (degrees per frame) */
|
|
43
|
+
rotationSpeed: number;
|
|
44
|
+
/** Particle size */
|
|
45
|
+
size: number;
|
|
46
|
+
/** Particle opacity */
|
|
47
|
+
opacity: number;
|
|
48
|
+
/** Animation type for this particle */
|
|
49
|
+
animation: AnimationType;
|
|
50
|
+
/** Time since spawn (ms) */
|
|
51
|
+
age: number;
|
|
52
|
+
/** Animation-specific phase offset */
|
|
53
|
+
phase: number;
|
|
54
|
+
/** Additional animation data */
|
|
55
|
+
data: Record<string, number>;
|
|
56
|
+
}
|
|
57
|
+
/** Main configuration options */
|
|
58
|
+
export interface FallingAnimationOptions {
|
|
59
|
+
/** Container element or selector (default: document.body) */
|
|
60
|
+
container?: HTMLElement | string;
|
|
61
|
+
/** Array of objects to fall */
|
|
62
|
+
objects: FallingObject[];
|
|
63
|
+
/** Falling speed range in pixels per frame (default: { min: 2, max: 5 }) */
|
|
64
|
+
speed?: RangeValue;
|
|
65
|
+
/** Number of objects spawned per second (default: 3) */
|
|
66
|
+
spawnRate?: number;
|
|
67
|
+
/** Maximum concurrent particles (default: 50) */
|
|
68
|
+
maxParticles?: number;
|
|
69
|
+
/** Animation type(s) to use (default: 'fall') */
|
|
70
|
+
animation?: AnimationType | AnimationType[];
|
|
71
|
+
/** Object size range in pixels (default: { min: 20, max: 40 }) */
|
|
72
|
+
size?: RangeValue;
|
|
73
|
+
/** Object opacity range (default: { min: 0.6, max: 1 }) */
|
|
74
|
+
opacity?: RangeValue;
|
|
75
|
+
/** Wind effect (-1 to 1, default: 0) */
|
|
76
|
+
wind?: number;
|
|
77
|
+
/** Auto start animation (default: true) */
|
|
78
|
+
autoStart?: boolean;
|
|
79
|
+
/** Z-index for the container (default: 9999) */
|
|
80
|
+
zIndex?: number;
|
|
81
|
+
/** Enable responsive behavior (default: true) */
|
|
82
|
+
responsive?: boolean;
|
|
83
|
+
}
|
|
84
|
+
/** Resolved options with all defaults applied */
|
|
85
|
+
export interface ResolvedOptions {
|
|
86
|
+
container: HTMLElement;
|
|
87
|
+
objects: FallingObject[];
|
|
88
|
+
speed: RangeValue;
|
|
89
|
+
spawnRate: number;
|
|
90
|
+
maxParticles: number;
|
|
91
|
+
animation: AnimationType[];
|
|
92
|
+
size: RangeValue;
|
|
93
|
+
opacity: RangeValue;
|
|
94
|
+
wind: number;
|
|
95
|
+
autoStart: boolean;
|
|
96
|
+
zIndex: number;
|
|
97
|
+
responsive: boolean;
|
|
98
|
+
}
|
|
99
|
+
/** Animation registry type */
|
|
100
|
+
export type AnimationRegistry = Record<AnimationType, AnimationFunction>;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for falling-animation
|
|
3
|
+
*/
|
|
4
|
+
import { RangeValue } from './types';
|
|
5
|
+
/**
|
|
6
|
+
* Generate a random number between min and max
|
|
7
|
+
*/
|
|
8
|
+
export declare function randomRange(min: number, max: number): number;
|
|
9
|
+
/**
|
|
10
|
+
* Generate a random number from a RangeValue
|
|
11
|
+
*/
|
|
12
|
+
export declare function randomFromRange(range: RangeValue): number;
|
|
13
|
+
/**
|
|
14
|
+
* Generate a random integer between min and max (inclusive)
|
|
15
|
+
*/
|
|
16
|
+
export declare function randomInt(min: number, max: number): number;
|
|
17
|
+
/**
|
|
18
|
+
* Pick a random item from an array
|
|
19
|
+
*/
|
|
20
|
+
export declare function randomPick<T>(array: T[]): T;
|
|
21
|
+
/**
|
|
22
|
+
* Pick a random item based on weights
|
|
23
|
+
*/
|
|
24
|
+
export declare function weightedRandomPick<T extends {
|
|
25
|
+
weight?: number;
|
|
26
|
+
}>(items: T[]): T;
|
|
27
|
+
/**
|
|
28
|
+
* Clamp a value between min and max
|
|
29
|
+
*/
|
|
30
|
+
export declare function clamp(value: number, min: number, max: number): number;
|
|
31
|
+
/**
|
|
32
|
+
* Linear interpolation
|
|
33
|
+
*/
|
|
34
|
+
export declare function lerp(start: number, end: number, t: number): number;
|
|
35
|
+
/**
|
|
36
|
+
* Convert degrees to radians
|
|
37
|
+
*/
|
|
38
|
+
export declare function degToRad(degrees: number): number;
|
|
39
|
+
export declare function generateId(): number;
|
|
40
|
+
/**
|
|
41
|
+
* Resolve container from element or selector
|
|
42
|
+
*/
|
|
43
|
+
export declare function resolveContainer(container: HTMLElement | string | undefined): HTMLElement;
|
|
44
|
+
/**
|
|
45
|
+
* Create a style string from object
|
|
46
|
+
*/
|
|
47
|
+
export declare function styleToString(styles: Record<string, string | number>): string;
|
|
48
|
+
/**
|
|
49
|
+
* Throttle function calls
|
|
50
|
+
*/
|
|
51
|
+
export declare function throttle<T extends (...args: unknown[]) => void>(func: T, limit: number): T;
|
package/package.json
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "falling-animation",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "A lightweight, customizable falling objects animation library for web",
|
|
6
|
+
"main": "dist/falling-animation.cjs.js",
|
|
7
|
+
"module": "dist/falling-animation.esm.js",
|
|
8
|
+
"browser": "dist/falling-animation.umd.js",
|
|
9
|
+
"types": "dist/types/index.d.ts",
|
|
10
|
+
"files": [
|
|
11
|
+
"dist"
|
|
12
|
+
],
|
|
13
|
+
"scripts": {
|
|
14
|
+
"build": "rollup -c",
|
|
15
|
+
"dev": "rollup -c -w",
|
|
16
|
+
"demo": "npx serve .",
|
|
17
|
+
"prepublishOnly": "npm run build"
|
|
18
|
+
},
|
|
19
|
+
"keywords": [
|
|
20
|
+
"falling",
|
|
21
|
+
"animation",
|
|
22
|
+
"particles",
|
|
23
|
+
"effects",
|
|
24
|
+
"snowfall",
|
|
25
|
+
"confetti",
|
|
26
|
+
"leaf",
|
|
27
|
+
"emoji"
|
|
28
|
+
],
|
|
29
|
+
"author": "phong-baruby",
|
|
30
|
+
"license": "MIT",
|
|
31
|
+
"repository": {
|
|
32
|
+
"type": "git",
|
|
33
|
+
"url": "https://github.com/phong-baruby/falling-package"
|
|
34
|
+
},
|
|
35
|
+
"bugs": {
|
|
36
|
+
"url": "https://github.com/phong-baruby/falling-package/issues"
|
|
37
|
+
},
|
|
38
|
+
"homepage": "https://github.com/phong-baruby/falling-package#readme",
|
|
39
|
+
"devDependencies": {
|
|
40
|
+
"@rollup/plugin-typescript": "^11.1.6",
|
|
41
|
+
"rollup": "^4.9.0",
|
|
42
|
+
"@rollup/plugin-terser": "^0.4.4",
|
|
43
|
+
"tslib": "^2.6.2",
|
|
44
|
+
"typescript": "^5.3.3"
|
|
45
|
+
}
|
|
46
|
+
}
|