I have selected 4 DOM elements and want to animate one after another using an event transitionend. In the end, I would like to see the value xand y translate3d()are dynamic, so the reason is that it is done in JS, rather than just using something like animation CSS @keyframe.
I currently have this working code, but I feel that there might be a better way. Any pointers would be great. Thank!
var formComponents = document.querySelectorAll('.form-component');
formComponents[0].style.transitionDelay = '2s';
formComponents[0].style.webkitTransform = 'translate3d(550px, -250px, 0)';
formComponents[0].addEventListener('transitionend', function(e) {
formComponents[1].style.webkitTransform = 'translate3d(315px, -250px, 0)';
formComponents[1].addEventListener('transitionend', function(e) {
formComponents[2].style.webkitTransform = 'translate3d(150px, -250px, 0)';
formComponents[2].addEventListener('transitionend', function(e) {
formComponents[3].style.webkitTransform = 'translate3d(-125px, -250px, 0)';
}, false);
}, false);
}, false);
<div class="form-component"></div>
<div class="form-component"></div>
<div class="form-component"></div>
<div class="form-component"></div>
Run codeHide result
source
share