Anime.js – A lightweight JavaScript animation library
Mostly obsolete with CSS tweening.You can do non-blocking animation timelines without any library if you use async javascript.  
  
  Click me to change color every second, then remove.
    
      // Locality of Behavior
      me = document.currentScript.parentElement;
      me.addEventListener("click", async event => {
        me = event.target
        me.style.transition = "background 1s"
        await sleep(1000)
        me.style.background = "red"
        await sleep(1000)
        me.style.background = "green"
        await sleep(1000)
        me.style.background = "blue"
        await sleep(1000)
        me.style.background = "none"
        await sleep(1000)
        me.remove()
      })

      const sleep = ms => new Promise(r => setTimeout(r, ms));
    
  
  
  

If you like this, you may also want to check out: https://github.com/gnat/surreal