Skip to content

Initialization

The initParticleJS() function is the entry point to ParticleText.js. This function initializes a particle text animation on a canvas element.

initParticleJS(elementSelector, configurationObject)
ParameterTypeRequiredDescription
elementSelectorStringYesCSS selector for the canvas element (e.g., '#myCanvas', .particle-canvas)
configurationObjectObjectYesConfiguration options for the particle animation

Returns an object with the following properties and methods:

Property/MethodTypeDescription
isAnimatingBooleanCurrent animation state (true if running)
particleListArrayArray of all particle objects
getCurrentBreakpoint()FunctionReturns current responsive breakpoint
startAnimation()FunctionStarts the animation (use when autoAnimate is false)
forceRequestAnimationFrame()FunctionForces a single frame render
// Minimal initialization
const particleText = initParticleJS('#canvas', {
colors: ['#695aa6']
});
// The function returns an object you can use for control
console.log(particleText.isAnimating); // true
console.log(particleText.particleList.length); // Number of particles

The canvas element must exist in the DOM before calling initParticleJS():

<!-- Canvas must be in HTML -->
<canvas id="myCanvas" data-text="ParticleText" width="1200" height="400"></canvas>
<script src="particleText.js"></script>
<script>
// Initialize after canvas exists
initParticleJS('#myCanvas', {
colors: ['#695aa6']
});
</script>

Uses default values for most options:

initParticleJS('#canvas', {
colors: ['#695aa6']
});

Specifies all common options:

initParticleJS('#canvas', {
text: 'ParticleText',
colors: ['#695aa6', '#8b7bb8', '#a89bc9'],
fontSize: 100,
width: 1200,
height: 400,
fontWeight: 'bold',
textAlign: 'center',
autoAnimate: true,
maxParticles: 5000,
trackCursorOnlyInsideCanvas: false
});
// Store the reference
const myAnimation = initParticleJS('#canvas', {
colors: ['#695aa6'],
autoAnimate: false
});
// Control it later
document.getElementById('startBtn').addEventListener('click', () => {
myAnimation.startAnimation();
});
// Check current state
if (myAnimation.isAnimating) {
console.log('Animation is running');
}
// Initialize multiple canvases
const header = initParticleJS('#headerCanvas', {
text: 'Welcome',
colors: ['#FF6B6B'],
fontSize: 120
});
const footer = initParticleJS('#footerCanvas', {
text: 'Thank You',
colors: ['#4ECDC4'],
fontSize: 80
});
// Control them independently
header.startAnimation();
footer.startAnimation();

Ensure the canvas exists before initialization:

<!-- Recommended: Use defer -->
<canvas id="canvas" data-text="Hello"></canvas>
<script src="particleText.js" defer></script>
<script defer>
initParticleJS('#canvas', { colors: ['#695aa6'] });
</script>
<script>
document.addEventListener('DOMContentLoaded', () => {
initParticleJS('#canvas', {
colors: ['#695aa6']
});
});
</script>
<body>
<canvas id="canvas" data-text="Hello"></canvas>
<!-- Scripts at end of body -->
<script src="particleText.js"></script>
<script>
initParticleJS('#canvas', { colors: ['#695aa6'] });
</script>
</body>

The library will throw errors for invalid configurations:

try {
initParticleJS('#canvas', {
colors: ['invalid-color'] // Will throw error
});
} catch (error) {
console.error('Initialization failed:', error.message);
}

Common initialization errors:

ErrorCauseSolution
”Canvas element not found”Invalid selector or element doesn’t existCheck selector and ensure canvas is in DOM
”Missing required ‘text’ property”No text specifiedAdd text config or data-text attribute
”Color at index 0 is not a valid hex color”Invalid color formatUse 6-digit hex format: #RRGGBB

The library validates your configuration and will log warnings for:

  • Invalid breakpoint names
  • Invalid particle radius structure
  • Invalid friction values
  • Missing required properties
// This will log validation warnings
initParticleJS('#canvas', {
colors: ['#695aa6'],
particleRadius: {
'invalid-breakpoint': { base: 1, rand: 1 } // Warning: invalid breakpoint
}
});

The library looks for text in this order:

  1. Configuration text property (highest priority)
  2. Canvas data-text attribute
  3. Error if neither exists
<!-- data-text attribute -->
<canvas id="canvas" data-text="From Attribute"></canvas>
<script>
initParticleJS('#canvas', {
text: 'From Config', // This takes priority
colors: ['#695aa6']
});
// Will display: "From Config"
</script>