suchen
HeimWeb-FrontendCSS-TutorialWebslinger.css: wie wow.js, aber mit CSS-y Scroll-Animationen

Web-Slinger.css: Like Wow.js But With CSS-y Scroll Animations

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

Vorhandene Scroll-Animationslösungen kehren häufig Animationen um, wenn sie nach oben scrollen, im Gegensatz zu dem gewünschten "One-and-done" -Verhalten in wow.js. Diese Einschränkung inspirierte die Erstellung von "webslinger.css", einer reinen CSS-Bibliothek, die die WOW.js-Funktionalität nachahmt.

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

Ein einfaches Beispiel verwendet

, 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

Das Markup des Cownter ist unkompliziert:

<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()

Diese Technik vermeidet direkt animierende benutzerfreundliche Elemente und verwendet stattdessen das feste Element als Trigger. Benannte Ansicht Progress Timelines (

) Verknüpfen Sie das feste Element mit den zu animierten Elementen. timeline-scope

CSS -Code 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

Die Zukunft der von Scrollen ausgelösten Animationen liegt in der Unterstützung des nativen Browsers. Ein deklarativer Ansatz ähnlich wie webslinger.css könnte für die Standardisierung übernommen werden.

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!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Iterieren eines React -Designs mit gestalteten KomponentenIterieren eines React -Designs mit gestalteten KomponentenApr 21, 2025 am 11:29 AM

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!Oh, die vielen Möglichkeiten, dreieckige Brotbänder zu machen!Apr 21, 2025 am 11:26 AM

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

SVG -Eigenschaften im CSS -LeitfadenSVG -Eigenschaften im CSS -LeitfadenApr 21, 2025 am 11:21 AM

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.

Ein paar funktionale Verwendungen für den Intersection -Beobachter, um zu wissen, wann ein Element in Sicht istEin paar funktionale Verwendungen für den Intersection -Beobachter, um zu wissen, wann ein Element in Sicht istApr 21, 2025 am 11:19 AM

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

Wiederbelebung bevorzugt es, reduzierte Motion zu machenWiederbelebung bevorzugt es, reduzierte Motion zu machenApr 21, 2025 am 11:18 AM

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

So holen Sie eine progressive Web -App in den Google Play StoreSo holen Sie eine progressive Web -App in den Google Play StoreApr 21, 2025 am 11:10 AM

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

Die einfachsten Möglichkeiten, mit HTML umzugehenDie einfachsten Möglichkeiten, mit HTML umzugehenApr 21, 2025 am 11:09 AM

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

Ändern Sie die Farbe von SVG beim SchwebeÄndern Sie die Farbe von SVG beim SchwebeApr 21, 2025 am 11:04 AM

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,

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

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

Heiße Werkzeuge

MantisBT

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

Dreamweaver Mac

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHPStorm Mac-Version

PHPStorm Mac-Version

Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools