because in `animate` it will be asynchronous (because of the `animationend` event) so this keeps things consistent. (this is an advice from the effectivejs book)