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

SQL Get gespeicherte Prozedur gibt Datenprozessanalyse zurück

Dieser Artikel stellt hauptsächlich die Analyse d...

JS ES neue Funktionen Vorlagenzeichenfolge

Inhaltsverzeichnis 1. Was ist eine Vorlagenzeiche...

Textarea-Tag in HTML

<textarea></textarea> wird verwendet,...

Auszeichnungssprache - für

Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...

Fortgeschrittene JavaScript-Programmierung: Variablen und Umfang

Inhaltsverzeichnis 1. Ursprungswert und Bezugswer...

Datenstruktur - Baum (III): Mehrweg-Suchbaum B-Baum, B+ Baum

Mehrweg-Suchbaum Höhe eines vollständigen Binärba...

Untersuchung und Korrektur des seltsamen Verhaltens von parseInt() in js

Hintergrund: Ich frage mich, ob Ihnen aufgefallen...

Zusammenfassung der wichtigsten Erkenntnisse des Vue-Entwicklungshandbuchs

Inhaltsverzeichnis Überblick 0. Grundlagen von Ja...

Detaillierte Erklärung zur Verwendung von MySQL DML-Anweisungen

Vorwort: Im vorherigen Artikel haben wir hauptsäc...