In diesem Artikel wird Scroll -Animationen untersucht, wobei sich speziell auf "Scroll -Auslösen" konzentriert - eine Technik, bei der Animationen aktiviert werden, sobald ein Benutzer einen bestimmten Punkt überschreitet. Während wir derzeit native CSS-Unterstützung fehlen, können wir diesen Effekt mit cleveren CSS-Techniken erzielen und eine CSS-Alternative zu JavaScript-Bibliotheken wie Wow.js. erstellen. Dieser Ansatz verwendet die Eigenschaften, benutzerdefinierte Eigenschaften und Stilabfragen. animation-timeline
webslinger.css: Eine CSS-Scroll-Animationsbibliothek
webslinger.css verwendet Klassen wie
und .scroll-trigger-n
zusammen mit benutzerdefinierten Eigenschaften (.on-scroll-trigger-n
), um Animationen zu verwalten. Dieser Ansatz entkoppelt Animationstruationen aus den animierten Elementen und liefert Flexibilität. --scroll-trigger-n
, um die "Flipiny" -Animation von Animate.css auszulösen. Komplexere Beispiele wie der "Cownter" in der Demo zeigen, dass mehrere Animationen aus einem einzelnen Scroll -Punkt ausgelöst werden. .scroll-trigger-8
<div> <h2></h2> <div> <br><br><a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">? Play again</a> </div> </div>und sein CSS nutzt Stilabfragen für dynamische Inhaltsaktualisierungen:
.header { .cownter::after { --cownter: calc(var(--scroll-trigger-2) + var(--scroll-trigger-4) + var(--scroll-trigger-8) + var(--scroll-trigger-11)); --pluralised-cow: 'cows'; counter-set: cownter var(--cownter); content: "Have " counter(cownter) " " var(--pluralised-cow) ", man"; } @container style(--scroll-trigger-2: 1) and style(--scroll-trigger-4: 0) { .cownter::after { --pluralised-cow: 'cow'; } } a { text-decoration: none; color: blue; } } :root:has(.reset:active) * { animation-name: none; }Die Demo verwendet webslinger.css als externe Ressource.
Web-Slinger.CSS-Implementierungsdetails
Das Kernkonzept beinhaltet die Verwendung von
als Animationszeitleiste, um ein dauerhaft festes Element zu erstellen. Style -Abfragen und benutzerdefinierte Eigenschaften steuern dann andere Animationen basierend auf der Sichtbarkeit dieses festen Elements. view()
) Verknüpfen Sie das feste Element mit den zu animierten Elementen. timeline-scope
anzeigen
/** Each trigger element toggles `--scroll-trigger-n` from 0 to 1, unpausing animations on `.on-scroll-trigger-n` **/ :root { animation-name: run-scroll-trigger-1, run-scroll-trigger-2 /*etc*/; animation-duration: 1ms; animation-fill-mode: forwards; animation-timeline: --trigger-timeline-1, --trigger-timeline-2 /*etc*/; timeline-scope: --trigger-timeline-1, --trigger-timeline-2 /*etc*/; } @property --scroll-trigger-1 { syntax: "<integer>"; initial-value: 0; inherits: true; } @keyframes run-scroll-trigger-1 { to { --scroll-trigger-1: 1; } } /** Animate elements only when `.scroll-trigger-1` is in view **/ .on-scroll-trigger-1 { animation-play-state: paused; } @container style(--scroll-trigger-1: 1) { .on-scroll-trigger-1 { animation-play-state: running; } } /** Trigger element, fixed to top, activating animations **/ .scroll-trigger-1 { view-timeline-name: --trigger-timeline-1; }</integer>
Einschränkungen und zukünftige Verbesserungen
webslinger.css, obwohl sie funktionsfähig ist, erzeugt zwar größere CSS-Dateien mit mehr Triggern. Die nummerierten Klassennamen fehlen semantische Klarheit. Im Idealfall würde der native Browserunterstützung das Verknüpfung von Triggern und Zielen mit IDs ermöglichen, ähnlich wie ein hypothetisches
Attribut. scrolltrigger
Das obige ist der detaillierte Inhalt vonWebslinger.css: wie wow.js, aber mit CSS-y Scroll-Animationen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

In einer perfekten Welt hätten unsere Projekte unbegrenzte Ressourcen und Zeit. Unsere Teams würden mit gut durchdachten und hoch verfeinertem UX -Design kodieren.

Oh, die vielen Möglichkeiten, dreieckige Brotbänder zu machen

SVG verfügt über eigene Elemente, Attribute und Eigenschaften, sofern der Inline -SVG -Code lang und komplex werden kann. Durch die Nutzung von CSS und einigen der bevorstehenden Merkmale der SVG 2 -Spezifikation können wir diesen Code für saubereres Markup reduzieren.

Sie wissen das vielleicht nicht, aber JavaScript hat sich in jüngster Zeit heimlich eine ganze Reihe von Beobachtern angesammelt, und der Beobachter der Kreuzung ist ein Teil davon

Möglicherweise müssen wir nicht alle CSS -Animationen wegwerfen. Denken Sie daran, es ist eine bevorzugte Motion, nicht bevorzugt nicht mit Bewegung.

PWA (Progressive Web Apps) ist seit einiger Zeit bei uns. Jedes Mal, wenn ich den Kunden versuche, es zu erklären, wird dieselbe Frage angezeigt: "Werden meine Benutzer sein

Es ist für mich äußerst überraschend, dass HTML noch nie andere HTML -Dateien in sich einbezogen hat. Es scheint auch nicht etwas am Horizont zu stehen, das

Es gibt viele verschiedene Möglichkeiten, SVG zu verwenden. Abhängig davon, in welchem Weg die Taktik zum Umfotieren dieser SVG in verschiedenen Zuständen oder Bedingungen -: schweben,


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

MantisBT
Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

Dreamweaver Mac
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools