persist V4 WAAPI

By default, WAAPI animations are automatically canceled and released from memory when they complete. This is necessary to prevent animations from running forever and causing potential memory leaks.

This behavior can causes issues when using methods on a completed WAAPI animation, since the animation won't be active anymore.

The persist parameter solves that, and keeps the animation active when it completes.

Accepts

Boolean

Default

false

For scroll-controlled WAAPI animations, the persist parameter is automatically set to true.

To change the default value globally, update the engine.defaults object.

import { engine } from 'animejs';
engine.defaults.persist = true;

persist code example

import { waapi, utils } from 'animejs';

const [ $button ] = utils.$('.button');

const animationA = waapi.animate('.square-a', {
  x: '17rem',
  persist: false, // default
});

const animationB = waapi.animate('.square-b', {
  x: '17rem',
  persist: true,
});

const alaternateAnimations = () => {
  animationA.alternate().resume();
  animationB.alternate().resume();
};

$button.addEventListener('click', alaternateAnimations);
<div class="medium row">
  <div class="square square-a"></div>
  <div class="padded label">persist: false</div>
</div>
<div class="medium row">
  <div class="square square-b"></div>
  <div class="padded label">persist: true</div>
</div>
<div class="medium row">
  <fieldset class="controls">
    <button class="button">Alternate</button>
  </fieldset>
</div>