Bewegung erstellen ist eine großartige Möglichkeit, Ihren Zuschauern ein interessantes und interaktives Erlebnis zu bieten. Mit modernen Websites, die eine größere Interaktivität bieten, wird immer erwartet, dass selbst einfache Websites ein gewisses Maß an Animation / Bewegung bieten, um ihre Besucher zu engagieren.
Heute werde ich eine Technik skizzieren, die Sie an Ihre Webprojekte anpassen können und Animationen auslösen, wenn Sie in eine vordefinierte Region scrollen. Diese Animationen werden mit CSS -Transformationen und CSS -Übergängen erstellt. Wir werden auch JQuery verwenden, um zu erkennen, wann die Elemente sichtbar sind, und um die entsprechenden Klassen hinzuzufügen/zu entfernen.
Für diejenigen, die Beispiele dafür in Aktion sehen möchten, können Sie direkt zu den Demos springen.
Der Hauptgrund, warum wir Animationen für die Scrollen auslösen möchten, ist, dass sie so aktivieren, wie der Benutzer ein Element in Ansicht scrollt.
Wir möchten vielleicht Elemente verblassen oder eine interessante Transformation liefern, und diese würden nur sinnvoll sein, wenn der Benutzer sie tatsächlich anzeigen kann.
Es gibt Vor- und Nachteile für jeden Ansatz. JQuery (Lesen Sie JavaScript) ermöglicht es Ihnen, Dinge zu animieren, die CSS nicht (z. Schicht.
Ich werde Transformationen über CSS verwenden, es gibt jedoch immer Variablen, die je nach Situation in Betracht gezogen werden müssen. Ich würde die folgenden Faktoren berücksichtigen:
Da unsere Lösung auf Transformationen basiert, beschränkt sich unsere Browserkompatibilität auf diejenigen, die entweder 2D -Transformationen oder 3D -Transformationen unterstützen.
Alle modernen Browser werden 3D -Transformationen unterstützen, und einige der älteren Legacy -Browser wie Internet Explorer 9 und Opera 11.5 unterstützen 2D -Transformationen. Die Gesamtunterstützung sowohl für Desktop- als auch für mobile Browser ist umfassend.
Die Animate -Methode vonjQuery funktioniert in einem beliebigen (vernünftigen) Browser, sofern Sie die 1.x -Version der Bibliothek verwenden. JQuery 2.x hat die Unterstützung für IE8 und unten entfernt.
GeschwindigkeitDie Beispiele verwenden 3D-Transformationen mit 2D-Fall-Backs für ältere Browser. Wir möchten die Beschleunigung der Hardware für Geschwindigkeit erzwingen, sodass eine 3D -Transformation ein Muss ist (wir werden Translate3D zusammen mit anderen Funktionen verwenden, die eine GPU -beschleunigte Renderung verursachen).
jQuery's Animate -Methode ist erheblich langsamer als eine GPU -assistierte Transformation, daher werden wir JQuery nur für unsere Ereignisbehandlung / -berechnungen verwenden, nicht für unsere Animation selbst (da wir möchten, dass sie so reibungslos wie möglich sind).
Randnotiz
Erkennung von Animationselementen in Ansicht
Selektor Caching
In unserem Skript beziehen wir uns sowohl auf das Fensterobjekt als auch die Sammlung von Elementen, die wir animieren möchten.
<span>//Cache reference to window and animation items </span><span>var $animation_elements = $('.animation-element'); </span><span>var $window = $(window);</span>
Als nächstes erstellen wir unseren Event -Handler, der für das Scroll -Event hört. Dies wird abfeuern, wenn wir die Seite scrollen. Wir übergeben es einen Verweis auf unsere Funktion check_if_in_view (die wir in einer Minute erhalten). Jedes Mal, wenn das Scroll -Ereignis abgefeuert wird, wird diese Funktion ausgeführt.
<span>//Cache reference to window and animation items </span><span>var $animation_elements = $('.animation-element'); </span><span>var $window = $(window);</span>
Da wir Höhen und Breiten berechnen, müssen wir zusammen mit der allgemeinen Größenänderung die Orientierungsänderungen berücksichtigen.
Wir können unseren Event -Handler aktualisieren, um sowohl für die Schriftrolle als auch für die Größe der Größe zu hören. Dadurch können unsere Erkennungsfunktion funktionieren, wenn wir die Größe oder die Änderung der Orientierung ändern.
$<span>window.on('scroll', check_if_in_view);</span>
Zusätzlich verwenden wir die JQuery -Triggermethode, um ein Bildlaufereignis auszulösen, sobald das DOM fertig ist. Wir tun dies, damit eines der animierten Elemente im Ansichtsfenster wie in Sichtweise erkannt und die Animation so angewendet wird, als hätten wir gescrollt.
$<span>window.on('scroll resize', check_if_in_view);</span>
Der tatsächliche Erkennungsteil dieses Beispiels stammt aus dem folgenden Skript.
$<span>window.trigger('scroll');</span>
Lassen Sie uns zusammenbrechen, was hier passiert.
Die Funktion check_if_in_view wird zunächst aufgerufen, wenn das DOM bereit ist und dann jedes Mal die Größe oder Scrollen.
wir erhalten die aktuelle Höhe des Fensters zusammen mit der oberen und unteren Position, damit wir wissen, welchen Bereich wir sehen.
Wir suchen nach allen Elementen, die sich animieren (gespeichert in der Variablen $ animation_elements). Für jedes dieser Elemente sammeln wir seine Höhe zusammen mit der oberen und unteren Position (so wissen wir, wo es auf der Seite lebt).
Wir vergleichen jedes Element, um festzustellen, ob seine untere Position größer ist als die obere Position des Fensters, aber auch, dass die obere Position des Elements geringer ist als die untere Position des Fensters.
Hier ist ein visuelles Beispiel
In unserer Erkennungsfunktion müssen wir die Höhen und Positionen verschiedener Elemente erhalten, um die Dinge richtig zu berechnen. Hier haben wir die Höhenfunktionen von JQuery verwendet. Es ist wichtig, dass diese Höhenfunktionen
zusammenarbeiten, was diese Höhenfunktionen funktionieren.Die Höhe der Höhe () und width () gibt die Höhe oder Breite eines Elements zurück. Sie schließen alle Polsterung, Grenzen und Ränder aus.
Besuchen Sie eine vollständige Aufschlüsselung in der Höhe oder der Breite.
Die Funktionen der Innerheight () und Innerwidth () geben die Höhe oder Breite des Elements zurück, einschließlich seiner zusätzlichen Polsterung (es schließt jedoch sowohl Grenzen als auch Ränder aus)
Besuchen Sie die Dokumentation in der Innerheight oder in der Innerbreite.
Die Funktionen der äußerenheight () und der äußeren Breite () geben die Höhe oder Breite des Elements zurück und schließen seine Polsterung und Rand ein.
Zusätzlich können Sie angeben, dass Sie seine Ränder einbeziehen, indem Sie einen Wert der Richtig an die Funktion übergeben.
Besuchen Sie die Außen- oder Außenbreiten -Dokumentation
sind eine Reihe von Animationen aufgeführt, die die Grundlagen dessen verwenden, was wir besprochen haben. Diese Beispiele suchen nach Animationselementen und wenden die aktive In-View-Klasse an, wenn sie sich im Ansichtsfenster befinden.
Elemente, die Sie bewegen möchten, sollten alle eine Standardklasse wie Animation-Element haben, die seine Position als relativ oder absolut feststellt. Wenn Sie mehrere Effekte erstellen möchten, können Sie außerdem entsprechende Klassen wie Dia-Links erstellen, die mit der In-View-Klasse kombiniert werden können. Sie sollten dann die Transformation auf eine Klasse wie Animation-Element.slide-left.inview
anwenden.Für unser erstes Beispiel werden wir bei der Eingabe des Ansichtsfensters in Elemente von links rutschen. Wir erreichen dies, indem wir eine Translate3D auf unserer Elemente x -Achse verwenden.
Siehe die Pen -CSS -Animationen auf Scroll - Sieben
In diesem Beispiel haben wir es verwendet, um Mitarbeiterprofile anzuzeigen, aber Sie können dieselbe Funktionalität wiederverwalten, um alle von Ihnen benötigten Elemente einzuschlagen.von unten
Für dieses Beispiel habe ich Kursinformationen zu Themen in einer Gitterstruktur aufgeführt. Wenn der Benutzer nach unten scrollt, verblasst jede Karte in Ansicht und bewegt sich auf, wobei Informationen über den Kurs angezeigt werden.
Siehe die Pen -CSS -Animationen auf Scroll - verblassen
Multi-Step-Bouncing-Animation
Siehe die Pen -CSS -Animationen auf Scroll - Multi -Schritt -Bewegung von SitePoint (@sinepoint) auf CodePen.
wohin von hier?
Jetzt, da Sie erkennen können, wann ein Element im Blickfeld ist, können Sie zusätzliche Transformationen oder Effekte anketten, um interaktive Schnittstellen zu erstellen. Wenn beispielsweise ein Element das Ansichtsfenster (und nach seiner Transformation) eingibt
Verwenden Sie diese Effekte bereits in Ihren Projekten? Oder glauben Sie, dass Animationen überbeanspruchte und beeinträchtigen die Benutzererfahrung? In jedem Fall würde ich gerne in den Kommentaren von Ihnen hören.
Bringen häufig gestellte Fragen (FAQs) zu scrollbasierten Animationen mit JQuery und CSS3
Was sind die grundlegenden Anforderungen an das Erstellen von Scroll-basierten Animationen mit JQuery und CSS3? Sie müssen auch die JQuery -Bibliothek in Ihrem Projekt enthalten. JQuery ist eine schnelle, kleine und featurereiche JavaScript-Bibliothek, die das HTML-Dokument durchquert, die Ereignishandhabung und Animation vereinfacht. CSS3 hingegen ist die neueste Entwicklung der Sprache der Cascading -Stilblätter und zielt darauf ab, CSS2.1 zu erweitern. Es bringt viele lang erwartete Neuheiten wie abgerundete Ecken, Schatten, Gradienten, Übergänge oder Animationen mit Wenn Sie scrollbasierte Animationen erstellen, müssen Sie zunächst die JQuery-Bibliothek in Ihre HTML-Datei aufnehmen. Sie können es entweder von der JQuery -Website herunterladen oder direkt aus einem Content Delivery Network (CDN) einbeziehen. Sobald Sie JQuery enthalten haben, können Sie Ihren JavaScript -Code in einer separaten .js -Datei oder in Skript -Tags in Ihrer HTML -Datei schreiben. Sie können dann die .animate () -Methode von JQuery verwenden, um Animationen zu erstellen. Für CSS3-Animationen können Sie KeyFrames und die Animationseigenschaft verwenden. in jQuery. Die .animate () -Methode akzeptiert einen Dauerparameter, der bestimmt, wie lange die Animation ausgeführt wird. Die Dauer ist in Millisekunden angegeben; Höhere Werte zeigen langsamere Animationen an, nicht schnellere. -Out 'Wert der CSS3-Übergangs-Timing-Funktion. Dieser Wert gibt an, dass die Animation langsam beginnen, in der Mitte beschleunigt und am Ende langsamer wird. Dies kann Ihren Animationen ein natürlicheres und reibungsloseres Gefühl verleihen.Das obige ist der detaillierte Inhalt vonErstellen von Scroll-basierten Animationen mit JQuery und CSS3. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!