Geniales GSAP Scroll-Feature: Vertikal → Horizontal → Vertikal

von | März 10, 2025 | Design | 0 Kommentare

Schlagwörter: GSAP

Inhaltsverzeichnis

Habt ihr euch schon mal gefragt wie man es hinbekommt, dass wenn man auf der Maus nach unten scrollt man am Bildschirm aber seitwärts verschiebt (seitwärts-scrollt) und erst später wieder weiter nach unten kommt? So eine Art Zick Zack Scrolling?

Mit so einem Effekt kann man den Webseitenbesucher ziemlich überraschen.

Heute zeige ich euch wie es geht.

Video

HTML

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<div class="sektion1">
    <h2>hello</h2>
</div>   
 
<div class="container">
    <div class="elemente">
        <h3>Apfel</h3>
        <img src="https://placehold.co/500x300" alt="Platzhalterbild">
        <h3>Brot</h3>
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Excepturi, dolorem.</p>
        <h3>Weizenmehl</h3>
        <img src="https://placehold.co/500x300" alt="Platzhalterbild">
        <h3>Eis</h3>
        <h3>Karotte</h3>
        <img src="https://placehold.co/500x300" alt="Platzhalterbild">
    </div>
</div>
 
<div class="sektion3">
    <h2>Hoffe es hat dir gefallen</h2>
</div>

CSS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
html, body {
    overflow-x: hidden; 
    width: 100vw; 
}
 
body {
    background-color: #f3f3f3;
}
 
.sektion1 {
    background-color: #4deaff;
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    overflow-y: hidden;
}
.sektion3 {
    background-color: #4d50ff;
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    overflow-y: hidden;
}
 
 
.elemente {
    width: fit-content;
    display:flex;
    flex-wrap: nowrap;
 
}
 
.elemente h3 {
 
    font-size: 30vw;
    flex-shrink: 0;
    padding-right:0.3em;
	padding-left:0.3em;
	color:#fff;
}
 
.pin-spacer {
    background-color: #000;
}
 
p {
    color: green;
    width: 1500px;
    font-size: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
}

GSAP

Zuert müsst ihr natürlich noch zuerst GSAP und ScrollTrigger im Head verlinken

1
2
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/gsap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/ScrollTrigger.min.js"></script>

Und dann kommt der GSAP Code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
gsap.registerPlugin(ScrollTrigger);
 
const elemente = document.querySelector(".elemente")
 
 
function getScrollMenge(){
  let elementeBreite = elemente.scrollWidth;
  return -(elementeBreite - window.innerWidth);
}
 
const breite = gsap.to(elemente, {
  x: getScrollMenge,
  duration: 3,
  ease: "none",
});
 
ScrollTrigger.create({
  trigger: ".container",
  start: "top 20%",
  end: () => `+=${getScrollMenge() * -1}`,
	pin:true,
	animation:breite,
	scrub:1,
	invalidateOnRefresh:true,
	markers:true
});




0 Kommentare

Einen Kommentar abschicken

Du kannst auf Fediverse-Profile verlinken, indem du fl:@benutzername in deinem Kommentar eingibst.

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert