CSS3-Beispielcode zum Erreichen einer Elementbogenbewegung

CSS3-Beispielcode zum Erreichen einer Elementbogenbewegung

So verwenden Sie CSS, um die Bogenbewegung von Elementen zu steuern

Wir alle wissen, dass der neue Übergangseffekt „Attribut Transform“ von CSS3 eine Elementverschiebung, -drehung und -skalierung erreichen kann. In Kombination mit dem Animationsattribut können Sie den Animationseffekt des Elements erzielen. Aber wie kann man mit CSS eine Bogenbewegung von Elementen erreichen:

Wie in der Animation oben gezeigt, bewegt sich der Ball in einem Bogen. Analysieren Sie die Bewegung:

  • Wenn wir die Bewegung des Balls in zwei Bewegungen aufteilen, die X-Achse und die Y-Achse, bewegt sich der Ball auf der X-Achse mit einer Geschwindigkeit von (langsam-schnell);
  • Der Ball bewegt sich mit einer Geschwindigkeit von (schnell-langsam) entlang der Y-Achse.
  • Kombinieren Sie die Bewegung zweier Achsen, um einen Bogeneffekt zu erzielen

Kubische Bézier-Funktion

In der Animationseigenschaft gibt es eine Animation-Timing-Function-Eigenschaft, die die Geschwindigkeitsfunktion der Animation ist. Diese Eigenschaft verwendet eine mathematische Funktion namens „kubische Bézier-Funktion“, um die Geschwindigkeitskurve zu generieren.

kubische Bézierfunktion (x1, y1, x2, y2): (Die genaue Bedeutung der kubischen Bézierfunktion finden Sie in den entsprechenden Materialien):


Über dieses Website-Portal können Sie den Kurvenwert in Echtzeit anpassen. Das Attribut „animation-timing-function“ stellt bereits mehrere vorgefertigte Geschwindigkeitsfunktionen bereit: „ease“, „linear“, „ease-in“, „ease-out“ und „ease-in-out“, die wir häufig verwenden.

Effektrealisierung

Als Erstes fällt uns die Trennung der Verschiebungsanimation der X- und der Y-Achse ein. Allerdings kann die Animation eines Elements immer nur eine Animation (die zuletzt deklarierte) gleichzeitig ausführen. Wir können also aus einer anderen Perspektive denken und zwei über- und untergeordnete Elemente verwenden. Fügen Sie dem übergeordneten Element eine X-Achsen-Verschiebungsanimation und dem untergeordneten Element eine Y-Achsen-Verschiebungsanimation hinzu. Der spezifische Code lautet wie folgt:

<!DOCTYPE html>
<html lang="de">
<Kopf>
    <meta charset="UTF-8">
    <title>Elementbogenbewegung</title>
    <Stil>
        .Kasten{
            Breite: 400px;
            Höhe: 400px;
            Rand: 2px durchgezogen #ff8800;
        }
        Spanne{
            Anzeige: Block;
            Breite: 40px;
            Höhe: 40px;
            Rand: 1px durchgezogen #222;
            Animation: Mitte1, 2 s, nach vorne einsteigen;

        }
        Spanne:nach{
            Inhalt: '';
            Anzeige: Block;
            Breite: 40px;
            Höhe: 40px;
            -Webkit-Randradius: 20px;
            -moz-Randradius: 20px;
            Rahmenradius: 20px;
            Hintergrund: grüngelb;
            Animation: Mitte2, 2 s nach vorne ausfahren;
        }
        @keyframes center1 {
            zu {transform: translateX(360px)}
        }
        @keyframes center2 {
            zu {transform: translateY(360px)}
        }
    </Stil>
</Kopf>
<Text>
<div Klasse="Box">
    <span></span>
</div>
</body>
</html>

Zu diesem Zeitpunkt habe ich die Pseudoklasse des Elements verwendet, um das untergeordnete Element zu ersetzen, und der Effekt ist der gleiche. Wenn Sie span einen farbigen Rahmen geben, können Sie die Bewegungsbahnen der beiden Elemente leichter beobachten. Der Animationseffekt ist wie folgt:

Zu diesem Zeitpunkt ist noch relativ deutlich zu erkennen, dass sich die grüne Kugel bogenförmig bewegt.

Erweiterungen:

Wenn Sie das Gefühl haben, dass der Bogen zu diesem Zeitpunkt nicht groß genug oder deutlich genug ist, können wir den Wert der kubischen Bézier-Funktion selbst anpassen. Laut Website-Portal.

  • Wählen Sie den Ease-In-Kurveneffekt aus. Nun ändern wir die Werte von x1 und y1 (den roten Punkt nach rechts ziehen). Kopieren Sie dann an dieser Stelle den cubic-bezier()-Wert. Ersetzen Sie die Ease-In-Position der Animation des ursprünglichen Bereichs durch diesen Wert.
  • Wählen Sie den Ease-Out-Kurveneffekt aus. Nun ändern wir die Werte von x2 und y2 (den blauen Punkt nach rechts ziehen). Kopieren Sie dann an dieser Stelle den cubic-bezier()-Wert. Ersetzen Sie die ursprüngliche Span-Pseudoklasse nach der Ease-Out-Position der Animation durch diesen Wert.

Der CSS-Code lautet derzeit wie folgt:

Spanne{
            Anzeige: Block;
            Breite: 40px;
            Höhe: 40px;
            Rand: 1px durchgezogen #222;
            Animation: Mitte1 2s Kubik-Bézier(.66,.01,1,1) vorwärts;

        }
        Spanne:nach{
            Inhalt: '';
            Anzeige: Block;
            Breite: 40px;
            Höhe: 40px;
            -Webkit-Randradius: 20px;
            -moz-Randradius: 20px;
            Rahmenradius: 20px;
            Hintergrund: grüngelb;
            Animation: Mitte2 2s Kubik-Bézier(0,0,.36,1) vorwärts;
        }

Der Bogen des Animationseffekts ist zu diesem Zeitpunkt noch deutlicher:

Damit ist dieser Artikel über Beispielcode zur Implementierung von Elementbogenbewegungen mit CSS3 abgeschlossen. Weitere relevante Inhalte zu CSS3-Elementbogenbewegungen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

<<:  Informationen zu UDP in Linux

>>:  Leitfaden für Anfänger zum Erstellen einer Website ⑦: Es ist so einfach, eine schöne Website zu erstellen

Artikel empfehlen

Informationen zur Verwendung der Vue v-on-Direktive

Inhaltsverzeichnis 1. Auf Ereignisse achten 2. Üb...

Nginx: Ein Domänenname für den Zugriff auf mehrere Projekte – Methodenbeispiel

Hintergrund Kürzlich stieß ich bei der Bereitstel...

So unterstützen Sie vollständiges Unicode in MySQL/MariaDB

Inhaltsverzeichnis Einführung in utf8mb4 Fehler b...

Optimierung der Web-Frontend-Leistung

Best Practices für die Web-Frontend-Optimierung: ...

Vergleich mehrerer Beispiele zur Einfügungseffizienz in MySQL

Vorwort Aus beruflichen Gründen musste ich kürzli...

Die Tücken der automatischen Inkrementierung numerischer MySQL-Typen

Beim Entwurf von Tabellenstrukturen gehören numer...

So erstellen Sie einen Flammeneffekt mit CSS

Unten beginnt der Haupttext. 123WORDPRESS.COM Her...

MySQL verwendet inet_aton und inet_ntoa, um IP-Adressdaten zu verarbeiten

Dieser Artikel stellt vor, wie Sie IP-Adressdaten...

So verwenden Sie den Linux-Befehl whatis

01. Befehlsübersicht Der Befehl whatis sucht in e...

Der Unterschied zwischen clientWidth, offsetWidth, scrollWidth in JavaScript

1. Konzept Sie alle sind Attribute des Elements u...

Probleme beim Erstellen von Platzhaltern für HTML-Auswahlfelder

Ich verwende einen Platzhalter in einer Texteinga...