Verwenden Sie CSS, um einen kreisförmigen Welleneffekt zu erzielen

Verwenden Sie CSS, um einen kreisförmigen Welleneffekt zu erzielen

Auf Mobilgeräten sehe ich häufig kreisförmige Wellengrafiken, um die Menge anzuzeigen. Zuerst dachte ich, dieser Effekt könne nur mit Canvas erzeugt werden, aber später stellte ich fest, dass er auch mit CSS erzeugt werden kann.

Prinzip: Wir alle wissen, dass border-radius:50% setzen. Wenn er weniger als 50 % beträgt, wird es tatsächlich ein unregelmäßiger Kreis. Wir können diese Funktion ausnutzen und Pseudoklassen sowie Transformanimationen verwenden, um einen Welleneffekt zu erzielen.

Schauen wir uns zunächst das Wirkungsdiagramm an:

// CSS-Code

.Welle {
        Position: relativ; 
    Breite: 200px;
    Höhe: 200px;
    Hintergrund: @Farbe;
    Rand: 5px durchgezogen #76daff;
    Randradius: 50 %;
    Überlauf: versteckt;
}
.wave-box::vorher,
.wave-box::nach {
      Inhalt: '';
      Position: absolut;
      oben: 0;
      links: 50%;
      Breite: 400px;
      Höhe: 400px;
      Randradius: 45 %;
      -webkit-transform: übersetzen(-50 %, -70 %);
      transformieren: übersetzen (-50 %, -70 %);
      Hintergrund: rgba(255, 255, 255, 0,5);
      -webkit-animation: 10 s linear unendlich rotieren;
      Animation: 10 s linear unendlich rotieren;
      Z-Index: 10;
}
@keyframes drehen {
  50 % {
            -webkit-transform: verschieben (-50 %, -75 %) drehen (180 Grad);
            transformieren: verschieben (-50 %, -75 %) drehen (180 Grad);
  }
  100 % {
            -webkit-transform: verschieben(-50 %, -70 %) drehen(180 Grad);
            transformieren: verschieben (-50 %, -70 %) drehen (180 Grad);
  }
}
//Oder es ist bequemer, eine vorkompilierte Sprache zu verwenden, hier verwenden wir weniger
.Welle(@Breite; @Höhe; @Farbe) {
    Position: relativ; 
    Breite: @width;
    Höhe: @Höhe;
    Hintergrund: @Farbe;
    Rand: 5px durchgehende @Farbe;
    Randradius: 50 %;
    Überlauf: versteckt;
    &::vor,
    &::nach {
        Inhalt: '';
        Position: absolut;
        oben: 0;
        links: 50%;
        Breite: @width * 2;
        Höhe: @Höhe * 2;
        Randradius: 45 %;
        transformieren: übersetzen (-50 %, -70 %);
        Hintergrund: rgba(255,255,255,0,5);
        Animation: 10 s linear unendlich rotieren;
        Z-Index: 10;
    }
    &::nach {
        Randradius: 47 %;
        Hintergrund: rgba(255,255,255,0,5);
        Animation: 10 s linear drehen, -5 s unendlich;
        Z-Index: 20;
    }
}
//Rufen Sie .wave-box { auf.
    .wave(200px; 200px; #76daff);
}
<!-- Auf der Seite aufgerufen -->
<div Klasse="wave-box"></div>

Zusammenfassen

Oben habe ich Ihnen erklärt, wie Sie mit CSS kreisförmige Welleneffekte erzielen. Ich hoffe, es wird Ihnen helfen. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!

<<:  Eine kurze Diskussion über die Synchronisierungslösung zwischen MySQL und Redis Cache

>>:  Webstandards – Lernen Sie die Trennung von Struktur und Präsentation zu verstehen

Artikel empfehlen

JavaScript zum Erreichen aller oder umgekehrter Auswahlfunktionen

In diesem Artikel wird der spezifische JavaScript...

Detailliertes Tutorial zur Installation von CUDA9.0 auf Ubuntu16.04

Vorwort: Dieser Artikel basiert auf den Erfahrung...

Hinweise zur Verwendung der verknüpften Liste des Linux-Kernel-Gerätetreibers

/******************** * Anwendung von verknüpften...

Linux-Fernsteuerungsprogramm für Windows-System (drei Methoden)

Manchmal müssen wir Programme auf dem Windows-Sys...

Beispielcode zur Implementierung eines reinen CSS-Popup-Menüs mit Transform

Vorwort Wenn Sie ein Topmenü erstellen, müssen Si...

Detaillierte Erläuterung der erweiterten Konstruktionseigenschaften von Vue

Inhaltsverzeichnis 1. Richtlinie Zollrichtlinie 2...

Einführung in HTML DOM_PowerNode Java Academy

Was ist DOM? Mit JavaScript können Sie das gesamt...

Die am häufigsten verwendete HTML-Escape-Sequenz

In HTML haben <, >, & usw. eine speziell...