Code Tutorial - Wie entsteht eine Scroll-to-Action-Sequenz wie bei Apple?

Categories Iocn
Development
Date Icon
September 2, 2025
Code Tutorial - Wie entsteht eine Scroll-to-Action-Sequenz wie bei Apple?

Apple hat es perfektioniert: Man scrollt auf der Website eines Produkts und statt einer statischen Seite entfaltet sich eine kleine Inszenierung. Bei den AirPods beispielsweise: Lichtreflexe, Drehungen, perfekte Übergänge. Diese Art von Scroll-to-Action-Sequenz ist mehr als Show. Sie sorgt dafür, dass Nutzer länger bleiben, Produkte eindrucksvoller wirken und eine Marke Premium-Qualität ausstrahlt.

Wir bei INSYNC haben dieses Prinzip u. a. für Deliver Films umgesetzt. Ein Produktionsstudio, das seine Expertise online genauso filmisch präsentieren wollte wie auf der großen Leinwand. Wie funktioniert das technisch? Schauen wir uns die Grundlagen an.

Apple AirPods Scroll Sequence

Schritt 1: Die Idee hinter der Animation

Zunächst: Das Ganze ist kein Video. Wäre es ein Video, könnte es nicht an die Scroll-Position gebunden sein. Stattdessen wird hier eine Abfolge von Einzelbildern (Frames) geladen, die beim Scrollen nacheinander gezeigt werden. Dadurch entsteht der Eindruck einer nahtlosen Animation.

Die Technik basiert auf zwei Kernideen:

  1. Canvas Rendering → Die Frames werden auf ein <canvas>-Element gemalt, das auf der Seite fixiert ist.
  2. Scroll Binding → Je nachdem, wie weit der Nutzer scrollt, wird der passende Frame geladen und angezeigt.

Apple nutzt dazu hunderte von Einzelbildern – die durch optimiertes Preloading so schnell wechseln, dass es aussieht wie ein Video.

Schritt 2: Grundstruktur in HTML & CSS

Wir brauchen drei Dinge: eine Scrollfläche, ein Canvas, und etwas Text.

<body>
  <canvas id="scrollAnimation"></canvas>
  <p id="copy">Deliver Films</p>
</body>


Das CSS sorgt dafür, dass das Canvas fixiert bleibt, während man scrollt:

html, body {
  margin: 0;
  height: 500vh; /* viel Scrollplatz */
  background: black;
}

canvas {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-width: 100vw;
  max-height: 100vh;
}

Schritt 3: Die Frames vorbereiten

Wir exportieren eine Sequenz von Bildern (z. B. 120 Stück aus einer 3D-Animation). Diese liegen dann in einem Ordner und heißen z. B.:

seq_0001.jpg
seq_0002.jpg
...
seq_0120.jpg

Schritt 4: JavaScript – Scroll mit Frames verbinden

Jetzt kommt die Magie:

const canvas = document.getElementById("scrollAnimation");
const context = canvas.getContext("2d");

const frameCount = 120;
const currentFrame = (i) =>
  `./frames/seq_${i.toString().padStart(4, "0")}.jpg`;

const img = new Image();
img.src = currentFrame(1);
canvas.width = 1920;
canvas.height = 1080;

img.onload = () => context.drawImage(img, 0, 0);

const updateImage = (index) => {
  img.src = currentFrame(index);
  img.onload = () => context.drawImage(img, 0, 0);
};

window.addEventListener("scroll", () => {
  const scrollTop = document.documentElement.scrollTop;
  const maxScrollTop = document.documentElement.scrollHeight - window.innerHeight;
  const scrollFraction = scrollTop / maxScrollTop;
  const frameIndex = Math.min(
    frameCount - 1,
    Math.floor(scrollFraction * frameCount)
  );

  requestAnimationFrame(() => updateImage(frameIndex + 1));
});


Was hier passiert:

  • Wir berechnen, wie weit der Nutzer gescrollt hat.
  • Wir wandeln diesen Wert in einen Frame-Index um.
  • Dann laden und zeichnen wir genau dieses Bild auf das Canvas.

Schritt 5: Optimierung

Damit es flüssig läuft, braucht es Preloading und Komprimierung. Apple löst das über Content Delivery Networks (CDNs) und stark optimierte Assets. Eine einfache Variante:

const preloadImages = () => {
  for (let i = 1; i < frameCount; i++) {
    const img = new Image();
    img.src = currentFrame(i);
  }
};
preloadImages();


So sind die Frames bereits im Cache, wenn der Nutzer scrollt.

Unser Projekt: Deliver Films

Bei Deliver Films haben wir das Ganze auf die nächste Ebene gebracht:

  • Individuelle 3D-Renderings statt Fotos.
  • Nahtlose Übergänge zwischen Scroll-Sequenz und anderen Seitenelementen.
  • Storytelling-Fokus: Jede Bewegung war dramaturgisch auf die Marke abgestimmt – nicht nur ein Effekt.

Das Ergebnis: eine Website, die sofort „Kino“ schreit und Kunden schon beim ersten Scrollen begeistert.

Werf gerne einen Blick auf das finale Ergebnis: https://www.deliverfilms.com/

Fazit

Eine Scroll-to-Action-Sequenz wie bei Apple basiert im Kern auf einem einfachen Prinzip: viele Einzelbilder, ein Canvas, und die Scroll-Position als Controller.

Die wahre Kunst liegt jedoch darin, diese Technik in eine Geschichte einzubetten – so wie wir es bei Deliver Films getan haben. Denn erst wenn Technik und Storytelling Hand in Hand gehen, entsteht eine Website, die nicht nur beeindruckt, sondern einen bleibenden Eindruck hinterlässt.

Wichtig: Der Code hier ist eine stark vereinfachte Version. In der Praxis arbeiten wir mit hunderten Zeilen Code – Debug-Skripten, Performance-Optimierungen, sauberer Asset-Komprimierung, präzisen Trigger-Punkten und Fallbacks für verschiedene Devices. Erst durch diese Detailarbeit läuft eine Sequenz wirklich flüssig, performant und auf allen Plattformen stabil.