(function(){ function isElementInViewport(element) { var rect = element.getBoundingClientRect(); if ( rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) + (element.offsetHeight * 0.75) && rect.right <= (window.innerWidth || document.documentElement.clientWidth)) { return 1; } else if ( rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth)) { return 2; } return false; } //var elements = document.querySelectorAll(".is-animated:not(.rs-columns), .is-animated:not(.rs-columns) > .rs-columns > *, .is-animated.rs-columns > *"); function getAnimatedElements() { var animatedWrapper = document.querySelectorAll(".is-animated"), elements = []; for (var i = 0; i < animatedWrapper.length; i++) { if (animatedWrapper[i].classList.contains("rs-columns") || animatedWrapper[i].classList.contains("animate-children")) { elements = animatedWrapper[i].children; } else if (!animatedWrapper[i].classList.contains("rs-columns")) { for (var j = 0; j < animatedWrapper[i].children.length; j++) { if (animatedWrapper[i].children[j].classList.contains("rs-columns")) { for (var k = 0; k < animatedWrapper[i].children[j].children.length; k++) { elements.push(animatedWrapper[i].children[j].children[k]); } } } if (!elements.length) { elements = animatedWrapper; } } } return elements; } var elements = getAnimatedElements(); console.log(elements); function callbackFunc() { var delay = 0; for (var i = 0; i < elements.length; i++) { if (elements[i].classList.contains('-in-view') === false && (hasDelay = isElementInViewport(elements[i]))) { if (hasDelay === 1) { for (var j = 0; j < elements[i].children.length; j++) { elements[i].children[j].style.transitionDelay = delay + 'ms'; } delay = delay + 125; } elements[i].classList.add("-in-view"); } /* Else-Bedinung entfernen, um .visible nicht wieder zu löschen, wenn das Element den Viewport verlässt. */ /*else { elements[i].classList.remove("-in-view"); }*/ } } window.addEventListener("load", callbackFunc); window.addEventListener("scroll", callbackFunc); })();