Skip to content

Instantly share code, notes, and snippets.

@pepebe
Last active January 27, 2020 13:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pepebe/b33bd727adb0dfb1b055a2de6513c08e to your computer and use it in GitHub Desktop.
Save pepebe/b33bd727adb0dfb1b055a2de6513c08e to your computer and use it in GitHub Desktop.
CSS-Klasse per JavaScript hinzufügen, wenn sich ein Element im Viewport befindet
.mein-element {
opacity: 0;
transition: opacity .5s ease-in-out;
}
.visible {
opacity: 1;
}
<div class="mein-element"></div>
<div class="mein-element"></div>
<div class="mein-element"></div>
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(".mein-element");
function callbackFunc() {
for (var i = 0; i < elements.length; i++) {
if (isElementInViewport(elements[i])) {
elements[i].classList.add("visible");
}
/* Else-Bedinung entfernen, um .visible nicht wieder zu löschen, wenn das Element den Viewport verlässt. */
else {
elements[i].classList.remove("visible");
}
}
}
window.addEventListener("load", callbackFunc);
window.addEventListener("scroll", callbackFunc);
.mein-element {
background:red;
height:50vh;
max-width: 500px;
margin:0 auto;
margin-bottom:2em;
}
.visible {
background: lime;
}
Elemente beim Sc
@pepebe
Copy link
Author

pepebe commented Jan 27, 2020

Scrolling-Effekte: CSS-Klasse per JavaScript hinzufügen, wenn sich ein Element im Viewport befindet

Das folgende JavaScript fügt einem Element mit der CSS-Klasse .mein-element zusätzlich die Klasse .visible hinzu, wenn das Element vollständig im Viewport sichtbar ist. Die else-Bedingung innerhalb des JavaScripts kann entfernt werden, um die CSS-Klasse nur hinzuzufügen, aber nicht wieder zu entfernen.

Source: https://blog.kulturbanause.de/2016/09/scrolling-effekte-css-klasse-viewport/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment