CSS-Animation kombiniert mit SVG zur Erzeugung eines Energieflusseffekts

CSS-Animation kombiniert mit SVG zur Erzeugung eines Energieflusseffekts

Der endgültige Effekt ist wie folgt:

Die Animation ist in zwei Schritte unterteilt

  • Laufbahn entwickeln
  • DOM erstellen und entlang des Pfades animieren

Laufbahn entwickeln

Wir müssen zuerst unten eine hellblaue, halbtransparente Straße als Pipeline für den Energiefluss zeichnen. Wir verwenden hier einen SVG-Pfad (tatsächlich können wir hier direkt das Hintergrundbild verwenden). Der Code lautet wie folgt:

<!-- Der Code ist in React geschrieben und die Durchquerung und einige Codes wurden gelöscht-->

<svg>
    <!-- Eingabeaufforderung zur Werkzeugbeschreibung, wird beim Füllen zum Filtern und für andere Vorgänge verwendet, hier ist das Leuchten an der Unterseite der Kugel-->
    <Definitionen>
        <radialGradient id="grad1" cx="50%" cy="50%" r="50%" fx="50%" fy="50%">
            <stop offset="0%" style={{ stopColor: "rgba(2,246,255,.5)" }} />
            <stop offset="100%" style={{ stopColor: "rgba(2,246,255,0)" }} />
        </radialGradient>
    </defs>
    <!-- Hier durchlaufen wir N hellblaue Linienpfade d als Pfad-->
    <Pfad d={item.path} Strich="rgba(29,159,167,0.4)" Füllung="transparent" Strichbreite={5}></Pfad>
    ...
    <!-- Hier ist eine leuchtende Kugel, die durch die Überlagerung zweier Kreise entsteht-->
    <g>
        <circle cx={cx} cy={cy} r="15" fill="url(#grad1)"></circle>
        <Kreis cx={cx} cy={cy} r="5" fill="rgba(2,246,255)"></Kreis>
    </g>
</svg>

DOM erstellen und entlang des Pfades animieren

Das Kernprinzip besteht hierbei darin, den Bewegungsversatzpfad über die Eigenschaft „Offset-Pfad“ und dann den Versatz über die Versatzdistanz festzulegen, sodass sich das Element durch die CSS3-Animation entlang einer bestimmten Flugbahn bewegen kann.

<!-- Hier müssen wir sicherstellen, dass die Box und die SVG-Box ausgerichtet sind und die gleiche Breite und Höhe haben, damit die Pfadpunkte konsistent sind-->
<div Klassenname={styles.animate}>
    <!-- Hier durchlaufen wir N Divs und lassen jedes Div entsprechend dem OffsetPath fließen, der der Wert von d im Pfad in SVG ist -->
    <!-- Ein negatives „animationDelay“ bedeutet, dass es vor dem Rendern ausgeführt wird, sodass der gesamte Pfad während des Renderns abgedeckt werden kann-->
    <div key={index} className={styles.point3} style={{ "offsetPath": "Pfad('M 105 34 L 5 34')", "animationDelay": `-${index * 1}s`, "animationDuration": '5s', 'animationPlayState': `${stop ? 'paused' : 'running'}` }}></div>
    ...
</div>
.Punkt3 {
    Breite: 10px;
    Höhe: 2px;
    // Offset-Pfad: Pfad('M 248 108 L 248 172 L 1510 172');
    Offset-Distanz: 0 %;
    Animation: Fluss 20 s linear normal unendlich;
    Hintergrundbild: linearer Farbverlauf (nach rechts, rgba (255, 255, 255, 0) 10 %, #FEFE02);
    Position: absolut;
    links: 0;
    rechts: 0;
}
}

@Keyframes-Fluss {
    aus {
        Offset-Distanz: 0 %;
    }

    Zu {
        Offset-Distanz: 100 %;
    }
}

Dies ist das Ende dieses Artikels über die Verwendung von CSS-Animation mit SVG zum Erstellen von Energieflusseffekten. Weitere Informationen zur Verwendung von CSS-Animation mit SVG finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln unten. Wir hoffen, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

<<:  Teilen Sie die Fallstricke von MySQLs current_timestamp und ihre Lösungen

>>:  Formel und Berechnungsmethode zur Schätzung der Server-Parallelität

Artikel empfehlen

Zusammenfassung der praktischen Erfahrungen zu HTML-Wissenspunkten

1. Das Tabellen-Tag ist Tabelle, tr ist Zeile, td ...

Detaillierte Erklärung der Verwendung von publicPath in Webpack

Inhaltsverzeichnis Ausgabe Ausgabepfad Ausgabe.öf...

Tutorial zur HTML-Tabellenauszeichnung (2): Tabellenrahmenattribute BORDER

Standardmäßig beträgt der Rand der Tabelle 0 und ...

So fügen Sie ein Lua-Modul zu Nginx hinzu

Lua installieren wget http://luajit.org/download/...

Ausführliche Erklärung zu Sitzung und Cookie in Tomcat

Vorwort HTTP ist ein zustandsloses Kommunikations...

CSS3-Textanimationseffekte

Wirkung html <div Klasse="sp-container&qu...

Implementieren eines Webplayers mit JavaScript

Heute zeige ich Ihnen, wie Sie mit JavaScript ein...

Standardmäßige Stilanordnung für HTML-Tags

html, address,blockquote,body, dd, div,dl, dt, fie...

Verwendung von MySQL-Triggern

Inhaltsverzeichnis 1. Trigger-Einführung 1. Was i...

MySQL-Datenbanktabelle und Datenbankpartitionierungsstrategie

Lassen Sie uns zunächst darüber sprechen, warum w...

VUE führt die Implementierung der Verwendung von G2-Diagrammen ein

Inhaltsverzeichnis Über G2 Chart verwenden Vollst...

React realisiert sekundäre Verknüpfung (linke und rechte Verknüpfung)

In diesem Artikel wird der spezifische Code von R...