Wie kann ich mit GSAP Bilder animieren?

von Eric-Oliver Mächler | Okt. 6, 2026 | Allgemein | 0 Kommentare

Schlagwörter: GSAP

Habt ihr euch schon mal gefragt wie man mehrere Bilder mit GSAP animieren kann? Wie man einzelne Bilder animiert, das kennen wir bereits, aber was ist wenn man mehrere Bilder hat? Die dann sogar noch nach einander animiert werden sollen? Das schauen wir uns heute an.

Video

GSAP verlinken

<script src="https://cdn.jsdelivr.net/npm/gsap@3.14.1/dist/gsap.min.js"></script>

HTML

<div class="container">
      <div class="img-container">
        <div class="img-wrapper">
          <img src="bild1.jpg" />
        </div>
        <div class="img-wrapper">
          <img src="bild2.jpg" />
        </div>
        <div class="img-wrapper">
          <img src="bild3.jpg" />
        </div>
      </div>
    </div>

CSS

:root {
  --start: #01057f;
  --container: #3c017f;
  --ende: #367f01;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

img {
  display: block;

  width: 100%;
  height: 100%;

  object-fit: cover;
}

.container {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
}

.img-container {
  display: flex;
  column-gap: 20px;
}

.img-wrapper {
  position: relative;
  flex: 1;
  width: 300px;
  height: 300px;
  border-radius: 10px;
  filter: drop-shadow(2px 4px 8px rgba(28, 29, 30, 0.6));
  overflow: hidden;
}

.img-wrapper img {
  position: absolute;
  inset: 0;
  opacity: 0;
}

@media (max-width: 700px) {
  .img-container {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    row-gap: 20px;
  }
}

GSAP

document.addEventListener("DOMContentLoaded", () =>{

    const images = document.querySelectorAll(".img-wrapper img");


gsap.set(images, {
    autoAlpha:0,
    clipPath: "polygon(50% 0, 50% 100%, 50% 100%, 50% 0)",
    filter: "blur(3px)",
    x: "5%",
    y: "5%",
})

const tl = gsap.timeline({
    delay: 1.5,
});

images.forEach((img) => {
    tl.to(
        img,
        {
            clipPath:"polygon(0% 0, 0% 100%, 100% 100%, 100% 0)",
            autoAlpha: 1,
            filter: "blur(0px)",
            x: "0%",
            y: "0%",
            duration: 1.5,
            ease: "power2.out",
        }
    )

})


});
Fediverse-Reaktionen

0 Kommentare

Kommentar Schreiben

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