Heim > Web-Frontend > CSS-Tutorial > Hauptteil

So verwenden Sie reines CSS zum Animieren von Baolo Mints (Quellcode im Anhang)

不言
Freigeben: 2018-10-08 16:41:13
nach vorne
1764 Leute haben es durchsucht

Der Inhalt dieses Artikels befasst sich mit der Verwendung von reinem CSS zur Realisierung der Animation von Baolu Mint Candy (mit Quellcode). Ich hoffe, dass dies der Fall ist hilfreich sein.

Effektvorschau

So verwenden Sie reines CSS zum Animieren von Baolo Mints (Quellcode im Anhang)

Quellcode-Download

https://github.com/comehope/front-end-daily -challenges

Code-Interpretation

Dom definieren, nur 1 Element:

<div></div>
Nach dem Login kopieren

Zentrierte Anzeige:

body {
    margin: 0;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: silver;
}
Nach dem Login kopieren

Containergröße definieren:

.spinner {
    width: 50vmin;
    height: 50vmin;
    position: relative;
}
Nach dem Login kopieren

Verwenden Sie das Pseudoelement before, um einen schwarzen Ring wie Bollo Mints zu zeichnen:

.spinner::before {
    content: '';
    position: absolute;
    box-sizing: border-box;
    width: inherit;
    height: inherit;
    border: 12.5vmin solid;
    border-radius: 50%;
}
Nach dem Login kopieren

Als nächstes erstellen Sie den Animationseffekt.
Stellen Sie die perspektivische Schärfentiefe ein:

body {
    perspective: 400px;
}
Nach dem Login kopieren

Lassen Sie den Ring auf der Z-Achse bewegen:

.spinner::before {
    animation: spin 1.5s ease-in-out infinite both reverse;
}

@keyframes spin {
    0%, 100% {
        transform: translateZ(10vmin);
    }

    60% {
        transform: translateZ(-10vmin);
    }
}
Nach dem Login kopieren

Lassen Sie den Ring leicht neigen, wenn der Z-Achsen-Abstand groß ist:

@keyframes spin {
    0%, 100% {
        transform: translateZ(10vmin) rotateX(25deg);
    }

    60% {
        transform: translateZ(-10vmin);
    }
}
Nach dem Login kopieren

Skalierungseffekt hinzufügen:

@keyframes spin {
    0%, 100% {
        transform: translateZ(10vmin) rotateX(25deg);
    }

    33% {
        transform: translateZ(-10vmin) scale(0.4);
    }

    60% {
        transform: translateZ(-10vmin);
    }
}
Nach dem Login kopieren

Verwenden Sie das after-Pseudoelement, um einen weißen Ring zu zeichnen und seine Animation um die Hälfte der gesamten Animationslänge zu verzögern:

.spinner::before,
.spinner::after {
    /*略*/
    animation: spin 1.5s ease-in-out infinite both reverse;
}

.spinner::after {
    border-color: white;
    animation-delay: -0.75s;
}
Nach dem Login kopieren

Erstellen Sie als Nächstes den Container Animationseffekte. Um nicht von der Animation untergeordneter Elemente beeinträchtigt zu werden, blockieren Sie vorübergehend die Animationseffekte von Pseudoelementen.

.spinner::before,
.spinner::after {
    /* animation: spin 1.5s ease-in-out infinite both reverse; */
}
Nach dem Login kopieren

Fügt den Animationseffekt der Drehung des Containers entlang der x-Achse hinzu. Die Animationszeit ist doppelt so hoch wie die Animationszeit des untergeordneten Elements:

.spinner {
    animation: wobble 3s ease-in-out infinite;
}

@keyframes wobble {
    0%, 100% {
        transform: rotateX(15deg);
    }
    
    50% {
        transform: rotateX(60deg);
    }
}
Nach dem Login kopieren

Fügt den Animationseffekt der Drehung des Containers entlang hinzu die y-Achse:

@keyframes wobble {
    0%, 100% {
        transform: rotateX(15deg) rotateY(60deg);
    }
    
    50% {
        transform: rotateX(60deg) rotateY(-60deg);
    }
}
Nach dem Login kopieren

Erhöhen Sie den Animationseffekt der Gesamtdrehung des Containers:

@keyframes wobble {
    0%, 100% {
        transform: rotateX(15deg) rotateY(60deg);
    }
    
    50% {
        transform: rotateX(60deg) rotateY(-60deg) rotate(180deg);
    }
}
Nach dem Login kopieren

Aktivieren Sie den Animationseffekt des untergeordneten Elements, sodass der Animationseffekt des untergeordneten Elements erhalten bleibt und der Animationseffekt des Containers werden überlagert:

.spinner::before,
.spinner::after {
    animation: spin 1.5s ease-in-out infinite both reverse;
}
Nach dem Login kopieren

Schließlich erstellen Sie das untergeordnete Element in Bewegung im 3D-Raum:

.spinner {
    transform-style: preserve-3d;
}
Nach dem Login kopieren

Fertig!

Das obige ist der detaillierte Inhalt vonSo verwenden Sie reines CSS zum Animieren von Baolo Mints (Quellcode im Anhang). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage