JSFiddle - React, Tailwind, and code Playground
by Michel Penke
HTML
<div class="wuerde"></div>
<div class="wuerde"></div>
…
<div class="wuerde"></div>
CSS
.wuerde {
background:red;
height:50vh;
max-width: 500px;
margin:0 auto;
margin-bottom:2em;
}
.red {
background: lime;
}
JavaScript
function isElementInViewport(element) {
var rect = element.getBoundingClientRect();
return (
rect.top >= 0 &&
rect.left >= 0 &&
rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
rect.right <= (window.innerWidth || document.documentElement.clientWidth)
);
}
var elements = document.querySelectorAll(".wuerde");
function callbackFunc() {
for (var i = 0; i < elements.length; i++) {
if (isElementInViewport(elements[i])) {
elements[i].classList.add("red");
}
}
}
window.addEventListener("load", callbackFunc);
window.addEventListener("scroll", callbackFunc);