Heim > Web-Frontend > CSS-Tutorial > Hauptteil

So verwenden Sie reines CSS, um eine abstrakte, plätschernde Wasseranimation zu erzielen (Quellcode beigefügt)

不言
Freigeben: 2018-09-17 15:53:11
Original
2304 Leute haben es durchsucht

Der Inhalt dieses Artikels befasst sich mit der Verwendung von reinem CSS zur Realisierung einer abstrakten Wellenanimation (Quellcode beigefügt). Ich hoffe, dass er für Freunde in Not hilfreich ist Dir hilft.

Effektvorschau

So verwenden Sie reines CSS, um eine abstrakte, plätschernde Wasseranimation zu erzielen (Quellcode beigefügt)


Quellcode-Download

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

Codeinterpretation

Dom definieren, der Container enthält 9 Elemente:

<div>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
</div>
Nach dem Login kopieren

Zentrierte Anzeige:

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

Definieren Sie die Containergröße:

.container {
    width: 30em;
    height: 30em;
    font-size: 10px;
}
Nach dem Login kopieren

Verwenden Sie das Rasterlayout, um 9 Unterelemente in einem 3 * 3-Raster anzuordnen:

.container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}
Nach dem Login kopieren

Legen Sie den Stil der Unterelemente im Container fest durch Pseudoelement zum Festlegen:

.container span {
    position: relative;
}

.container span::before,
.container span::after 
{
    content: '';
    position: absolute;
    box-sizing: border-box;
    border-style: none solid solid none;
    border-width: 1em;
    border-color: gold;
    width: 100%;
    height: 100%;
}
Nach dem Login kopieren

Drehen Sie den Container so, dass seine Spitze nach oben zeigt:

.container {
    transform: rotate(-135deg);
}
Nach dem Login kopieren

Fügen Sie die Animation der Größe des untergeordneten Elements hinzu, die sich von klein nach groß ändert:

.container span::before,
.container span::after 
{
    animation: 
        animate-scale 1.6s linear infinite;
}

@keyframes animate-scale {
    from {
        width: 1%;
        height: 1%;
    }

    to {
        width: 100%;
        height: 100%;
    }
}
Nach dem Login kopieren

Fügen Sie die untergeordnete Animation zum Ändern der Rahmenfarbe des Elements hinzu:

.container span::before,
.container span::after 
{
    animation: 
        animate-border-color 1.6s linear infinite,
        animate-scale 1.6s linear infinite;
}

@keyframes animate-border-color {
    0%, 25% {
        border-color: tomato;
    }

    50%, 75% {
        border-color: gold;
    }

    100% {
        border-color: black;
    }
}
Nach dem Login kopieren

Fügen Sie die Animation zum Ändern der Rahmenbreite des untergeordneten Elements hinzu:

.container span::before,
.container span::after 
{
    animation: 
        animate-border-width 1.6s linear infinite,
        animate-border-color 1.6s linear infinite,
        animate-scale 1.6s linear infinite;
}
Nach dem Login kopieren

Verlangsamen Sie abschließend die Animationszeit des Pseudoelements ::after um einen halben Schlag:

.container span::after {
    animation-delay: -0.8s;
}

@keyframes animate-border-width {
    0%, 100%{
        border-width: 0.1em;
    }

    25% {
        border-width: 1.5em;
    }
}
Nach dem Login kopieren

Fertig!

Das obige ist der detaillierte Inhalt vonSo verwenden Sie reines CSS, um eine abstrakte, plätschernde Wasseranimation zu erzielen (Quellcode beigefügt). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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