Scroll Magic

ScrollMagic Home | offizielle Dokumentation

  1. simple
  2. simple mit fixed position
  3. veränderte Trigger Position
  4. Ablauf nach Scrollposition
  5. 2 Scrollelemente
  6. 2 Scrollelemente in einem Scriptblock
  7. pin
  8. pin ohne duration
  9. Display Eigenschaft ändern mit Event
  10. pin
  11. cascading pin
  12. reverse:true | reverse:false
  13. pin oben
  14. pin unten dann oben
  15. pin unten dann oben mit animiertem Scrollen
  16. animiertes Scrollen mit greensock
  17. move
  18. Scripts der Demo Seite
  19. parallax

zurück

Einbinden

Siehe in der Dokumentation, welche Dateien eingebunden werden müssen. Kurz zusammengefasst ist es JQuery, TweenMax, und ScrollMagic.

Scene

controller

Man erzeugt einen Controller

	var controller;
						$(document).ready(function($) {
							controller = new ScrollMagic();
						});

tween

Man erzeugt eine oder mehrere Greensock Animationen. Man kann aber auch darauf verzichten, wenn man nur die Pin Funktion einsetzen möchte.

var tween = TweenMax.to("#animate1", 0.5, {backgroundColor: "green", scale: 2.5});

scene

Dann erzeugt man eine oder mehrere Szenen und weist diese dem Controller zu. Beachten Sie, dass hier ein anderer Selektor genutzt wird, als im Tweening. Im Tweening wird ein Element angesprochen, welches animiert werden soll. In der scene Funktion wird ein Selektor genutzt dessen Scrollposition abgefragt wird. Sobald das Element den Triggerpunkt erreicht, wird das Tweening ausgeführt. Der Triggerpunkt ist ein Punkt irgendwo im sichtbaren Bereich. Man kann seine Position bestimmen.

	var scene = new ScrollScene({triggerElement: "#trigger1"})
											.setTween(tween)
											.addTo(controller);

Es gibt verschiedene Möglichkeiten Szenen einem controller zuzuweisensiehe Dokumentation

controller.addScene(scene1, scene2);

 

Wenn man die pin Funktion nutzen möchte, muss man diese mit setPin('selektor') zuweisen.

new ScrollScene({triggerElement: "#trigger", duration: 150})
								.setPin("#pin")
								.addTo(controller);

Triggerposition

siehe Dokumentation

Wenn das Element dessen Selektor beim Erzeugen der scene übergeben wird, den Triggerpunkt berührt, werden die Tweening oder Pinning Funktionen ausgeführt. Die vertikale Triggerposition liegt irgendwo zwischen der oberen und unteren Kante des sichtbaren Bereichs des Browserfenster. Die Position kann als Option der scene Funktion übergeben werden.

var scene = new ScrollScene({triggerElement: "#trigger1", triggerHook: 0})

Option der scene

triggerHook
  numerisch Schlüsselwort
oben 0 "onLeave"
mitte 0.5 "onCenter"
unten 1 "onEnter"

Außerdem kann man triggerHook über eine Methode abfragen und zuweisen. siehe offizielle Dokumentation

//abfragen
var triggerHook = scene.triggerHook();
//setzen
scene.triggerHook(0.7);

reverse

Die scene Option reverse erwartet einen boolschen Wert. Der Standard ist true. Das bedeutet, dass die Aktionen auch ausgeführt werden, wenn man zurückscrollt. Ein gepinntes Element erhält so beim zurückscrollen wieder die gleiche Position, die es vor dem nach oben scrollen gehabt hatte.

Bei der Option false, wird beim zurückscrollen das Objekt nicht gepinnt oder das Tween ausgeführt.

Beispiele reverse:true | reverse:false

 

Pin Beispiele

Problem:

Ein Element soll beim Scrollen von unten im sichtbaren Bereich erscheinen und nach oben scrollen. Wenn es an der Oberkante angekommen ist, wird es festgepinnt.

so sieht's aus

Problem:

Ein Element ist an der Unterkante festgepinnt. Beim scrollen löst es sich irgendwann, wandert nach oben und wird an der Oberkante festgepinnt.

so sieht's aus

Das gleiche mit Scrollanimation

so sieht's aus