CSS erzielt den Effekt, dass die äußerste Schicht einer mehrschichtigen verschachtelten Struktur rotiert, während die anderen Schichten unverändert bleiben.

CSS erzielt den Effekt, dass die äußerste Schicht einer mehrschichtigen verschachtelten Struktur rotiert, während die anderen Schichten unverändert bleiben.

Es gibt ein solches Szenario: ein kreisförmiger Container, der Hintergrund des äußersten Containers ist ein Bogen. Nun muss der äußerste Bogen gedreht werden, um sicherzustellen, dass sich der Inhalt im inneren Container nicht dreht. Als Nächstes werde ich Ihnen eine Lösung mitteilen. Schauen wir uns den endgültigen Effekt an:

Umsetzungsideen

  • Das äußerste Div ist so eingestellt, dass es einen um 50 % abgeschrägten Rand hat, und der Überlauf ist ausgeblendet
  • Stellen Sie den äußersten Hintergrund auf das Bogen-Hintergrundbild ein
  • Definiert die Rotationsanimation der äußeren Ebene. Der Rotationsgrad ist eine positive Zahl.
  • Definieren Sie die Rotationsanimation der inneren Ebene. Der Rotationsgrad ist negativ
  • Starten Sie die Animation und beginnen Sie mit der Rotation
  • Die äußere Schicht rotiert mit einer positiven Zahl und die innere Schicht rotiert mit einer negativen Zahl, was die Rotation einfach aufhebt und den idealen Effekt erzielt.

Implementierungsprozess

DOM-Strukturteil: Layout des äußeren und inneren Div

„load-panel“ ist das äußere Div, „headPortrait-img-panel“ ist das innere Div, „loadWhirl“ ist die äußere Rotationsanimation und „avatarRotation“ ist die innere Rotationsanimation.

<!--Avatar-Bereich-->
<div Klasse="KopfPortrait-Panel">
    <!--Ebene wird geladen-->
    <div Klasse="load-panel loadWhirl">
        <!--Avatar-Anzeigeebene-->
        <div Klasse="headPortrait-img-panel avatarRotation">
            <img src="../assets/img/login/[email protected]"/>
        </div>
    </div>
</div>

CSS-Teil: Layout der Stile und Implementierung der Rotationsanimationslogik.

  /*Avatar-Bereich*/
  .headPortrait-panel{
    Breite: 100 %;
    Höhe: 200px;
    Anzeige: Flex;
    Inhalt ausrichten: zentriert;
    Elemente ausrichten: zentrieren;
    Rand oben: 50px;

    /*Ebene laden*/
    .Ladepanel{
      Breite: 240px;
      Höhe: 240px;
      Randradius: 50 %;
      Anzeige: Flex;
      Inhalt ausrichten: zentriert;
      Elemente ausrichten: zentrieren;
      Hintergrund: URL("../img/login/[email protected]");

      img{
        Breite: 100 %;
        Höhe: 100%;
      }

      // Avatar-Rotation animation.avatarRotation{
        Animation: interner Avatar, 3 s linear;
        // Animation Endlosschleife animation-iteration-count:infinite;
      }

      /*Avatar-Anzeigeebene*/
      .headPortrait-img-panel{
        Breite: 200px;
        Höhe: 200px;
        Randradius: 50 %;
        Überlauf: versteckt;
        Rand: durchgezogen 1px #ebeced;

        img{
          Breite: 100 %;
          Höhe: 100%;
        }
      }
    }

    // Externe Rotation animation.loadWhirl{
      Animation: extern Halo 3s linear;
      // Animation Endlosschleife animation-iteration-count:infinite;
    }
  }

  // Definieren Sie die externe Halo-Rotationsanimation @keyframes externalHalo {
    0 %{
      transformieren: drehen (0 Grad);
    }
    25 %
      transformieren: drehen (90 Grad);
    }
    50 %{
      transformieren: drehen (180 Grad);
    }
    100 %{
      transformieren: drehen (360 Grad);
    }
  }

  // Definiere die interne Avatar-Rotationsanimation @keyframes internalAvatar {
    0 %{
      transformieren: drehen (0 Grad);
    }
    25 %
      transformieren: drehen (-90 Grad);
    }
    50 %{
      transformieren: drehen (-180 Grad);
    }
    100 %{
      transformieren: drehen (-360 Grad);
    }
  }

Projektgalerie

Die obige Codeadresse: Chat-System

Nachdem Sie das Projekt lokal geklont haben, besuchen Sie http://localhost:8020/login, um den Effekt anzuzeigen. Der Dateipfad für diesen Artikel lautet: src/views/login.vue

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

<<:  Was bedeutet Eingabetyp und wie kann die Eingabe begrenzt werden?

>>:  Das Prinzip und die Konfiguration des Nginx-Lastausgleichs sowie der dynamischen und statischen Trennung

Artikel empfehlen

Tipps zur Verwendung des Top-Befehls in Linux

Lassen Sie mich zunächst die Bedeutung einiger Fe...

So starten und starten Sie nginx unter Linux neu

Nginx (Engine x) ist ein leistungsstarker HTTP- u...

Detailliertes Tutorial zur Installation von Nginx auf CentOS8 (Bild und Text)

Nginx, ausgesprochen „Engine x“, ist ein Open Sou...

Detaillierte Fehlerbehebung bei Docker.service-Startfehlern

Führen Sie den folgenden Befehl aus, um einen Feh...

Lösung für die nicht wirksame Änderung des El-Popover-Stils von ElementUI

Bei der Verwendung von Element-UI gibt es eine hä...

XHTML-Erste-Schritte-Tutorial: Was ist XHTML?

Was ist HTML? Um es einfach auszudrücken: HTML wi...

Vue implementiert unregelmäßige Screenshots

Inhaltsverzeichnis Bilderfassung durch SVG CSS-Te...

So fügen Sie Wettervorhersagen in Ihre Website ein

Wir hoffen, dass wir durch die Einbindung der Wet...

Detailliertes Tutorial zum Upgrade von Zabbix Monitoring 4.4 auf 5.0

1. Zabbix-Backup [root@iZ2zeapnvuohe8p14289u6Z /]...