Specifying a root
The root is the only mandatory parameter needed to create a layout.
It defines the root element measured by the layout, and limits all children queries to descendants of that element.
By default, all children of a layout are animated.
You can also target elements outside the root by manually defining layout id data attributes (see the modal example).
Accepts
Default
Required
Specifying a root code example
import { createLayout, utils } from 'animejs';
const [ $rootA, $rootB ] = utils.$('.layout-container');
const [ $buttonA, $buttonB ] = utils.$('.controls button');
const layoutA = createLayout($rootA);
const layoutB = createLayout($rootB);
function animateLayoutA() {
layoutA.update(({ root }) => root.classList.toggle('row'));
}
function animateLayoutB() {
layoutB.update(({ root }) => root.classList.toggle('row'));
}
$buttonA.addEventListener('click', animateLayoutA);
$buttonB.addEventListener('click', animateLayoutB);
<div class="large layout centered row">
<div class="layout-container col grid-layout row">
<div class="item col">A 1</div>
<div class="item col">A 2</div>
</div>
<div class="layout-container col grid-layout row">
<div class="item col">B 1</div>
<div class="item col">B 2</div>
</div>
</div>
<div class="medium row">
<fieldset class="controls">
<button class="button">Animate A</button>
<button class="button">Animate B</button>
</fieldset>
</div>