Stagger grid
Distributes values on a 2d Array.
Accepts
| Value | Description |
|---|---|
[<Number>, <Number>] |
Explicit grid dimensions as [columns, rows] |
true |
Auto-grid mode: computes a 2D layout from element positions or JS object coordinates ({x, y}) |
Default
null
Since version 4.4.0, grid: true auto-grid mode automatically computes grid dimensions from element positions instead of requiring explicit [columns, rows] dimensions.
Stagger grid code example
import { animate, stagger } from 'animejs';
const $squares = utils.$('.square');
function animateGrid() {
animate($squares, {
scale: [
{ to: [0, 1.25] },
{ to: 0 }
],
boxShadow: [
{ to: '0 0 1rem 0 currentColor' },
{ to: '0 0 0rem 0 currentColor' }
],
delay: stagger(100, {
grid: [11, 4],
from: utils.random(0, 11 * 4)
}),
onComplete: animateGrid
});
}
animateGrid();
<div class="small justified row">
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
</div>
<div class="small justified row">
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
</div>
<div class="small justified row">
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
</div>
<div class="small justified row">
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
</div>