Inhalte auf der Seite beim Scrollen verdrehen oder verschieben
Hi alle zusammen,
mir ist auf vielen Webseiten aufgefallen, dass sich Inhalte verdrehen oder verschieben, wenn man rauf oder runterscrollt.
Kann man das ohne Javascript und nur mit HTML und CSS machen?
Beispielsweise möchte ich eine fette Überschrift nach links verschwinden lassen, wenn man nach unten scrollt. Wenn man nach oben scrollt, soll die Überschrift wieder reinrutschen.
Wie stelle ich das am besten an?
Kommentar abgeben zu diesen Beitrag/Code ?Dann hier klicken
Der hier verwendete Code
<!DOCTYPE html>
<html lang="de">
<head>
<title>Scrolling effects Betatest</title>
<meta charset="utf-8">
<style>
html,
body {
height: 4000px;
margin: 0;
margin-top: 500px;
padding: 0;
background-color: #dddddd;
display: flex;
flex-direction: column;
}
h1 {
text-align: center;
line-height: 1.5em;
font-size: 3em;
text-transform: uppercase;
letter-spacing: 0.15em;
}
.section {
padding: 4em;
height: 200px;
display: flex;
margin-top: 400px;
justify-content: center;
align-items: center;
background-color: beige;
}
.raus {
margin-left:-200vw;
transition: all 1s;
}
.rein {
margin-left: 0;
transition: all 1s;
}
</style>
</head>
<body>
<div class="section">
<h1>Überschrift</h1>
</div>
<div class="section">
<h1>Zweite Seite</h1>
</div>
<div class="section">
<h1>Dritte Seite</h1>
</div>
<script>
window.addEventListener("scroll", function(){
var header = document.querySelectorAll(".section");
header.forEach(function (el) {
let distanceToTop = window.pageYOffset + el.getBoundingClientRect().top;
let elementHeight = el.offsetHeight;
let scrollTop = document.documentElement.scrollTop;
if (scrollTop > distanceToTop) {
el.classList.add("raus");
if (el.classList.contains("rein")) {
el.classList.remove("rein");
}
} else {
if (el.classList.contains("raus")) {
el.classList.remove("raus");
el.classList.add("rein");
}
}
})
})
</script>
</body>
</html>