Heim > Web-Frontend > CSS-Tutorial > So verwenden Sie reines CSS, um einen Box-Throwing-Loader zu implementieren (Quellcode im Anhang)

So verwenden Sie reines CSS, um einen Box-Throwing-Loader zu implementieren (Quellcode im Anhang)

不言
Freigeben: 2018-09-03 17:52:09
Original
1583 Leute haben es durchsucht

Der Inhalt dieses Artikels befasst sich mit der Verwendung von reinem CSS zur Implementierung eines Box-Throwing-Loaders (Quellcode im Anhang). Ich hoffe, dass er für Sie hilfreich ist .

Effektvorschau

So verwenden Sie reines CSS, um einen Box-Throwing-Loader zu implementieren (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: teal;
}
Nach dem Login kopieren

Zeichnen Sie einen Holzstreifen:

.loader {
    width: 6em;
    border-bottom: 0.25em solid white;
    font-size: 30px;
    border-radius: 0.125em;
}
Nach dem Login kopieren

Zeichnen ein Kästchen darüber mit einem Pseudoelement:

.loader {
    position: relative;
}

.loader::before {
    content: '';
    position: absolute;
    width: 1em;
    height: 1em;
    border: 0.25em solid white;
    bottom: 0;
    left: 0.5em;
    border-radius: 0.25em;
}
Nach dem Login kopieren

Neigen Sie das Muster und erzeugen Sie den Effekt eines Kästchens auf einer Schräge:

.loader {
    transform: rotate(-45deg);
    left: 1em;
    top: 1em;
}
Nach dem Login kopieren

Als nächstes animieren Sie es.

Lassen Sie die Box Schritt für Schritt den Hang hinaufsteigen, klettern Sie bis zur Spitze des Hangs und steigen Sie dann erneut auf:

.loader::before {
    animation: push 3s infinite;
}

@keyframes push {
    0% {
        transform: translateX(0);
    }
    
    20%, 25% {
        transform: translateX(1em);
    }

    40%, 45% {
        transform: translateX(2em);
    }

    60%, 65% {
        transform: translateX(3em);
    }

    80% {
        transform: translateX(0);
    }
}
Nach dem Login kopieren

Erhöhen Sie den Rolleffekt der Box während des Aufstiegs:

@keyframes push {
    0% {
        transform: translateX(0) rotate(0deg);
    }
    
    20%, 25% {
        transform: translateX(1em) rotate(calc(90deg * 1));
    }

    40%, 45% {
        transform: translateX(2em) rotate(calc(90deg * 2));
    }

    60%, 65% {
        transform: translateX(3em) rotate(calc(90deg * 3));
    }

    80% {
        transform: translateX(0) rotate(0deg);
    }
}
Nach dem Login kopieren

Erhöhen Sie den anthropomorphen Effekt der Box beim Klettern:

@keyframes push {
    0% {
        transform: translateX(0) rotate(0deg);
    }

    5% {
        transform: translateX(0) rotate(-5deg);
    }
    
    20%, 25% {
        transform: translateX(1em) rotate(calc(90deg * 1 + 5deg));
    }

    30% {
        transform: translateX(1em) rotate(calc(90deg * 1 - 5deg));
    }

    40%, 45% {
        transform: translateX(2em) rotate(calc(90deg * 2 + 5deg));
    }

    50% {
        transform: translateX(2em) rotate(calc(90deg * 2 - 5deg));
    }

    60%, 65% {
        transform: translateX(3em) rotate(calc(90deg * 3 + 5deg));
    }

    70% {
        transform: translateX(3em) rotate(calc(90deg * 3 - 5deg));
    }

    80% {
        transform: translateX(0) rotate(-5deg);
    }
}
Nach dem Login kopieren

Lassen Sie die Holzstange eine Wurfbewegung ausführen, wenn die Box nahe an die Spitze klettert:

.loader {
    animation: throw 3s infinite;
    transform-origin: 20%;
}

@keyframes throw {
    0%, 70%, 100% {
        transform: rotate(-45deg);
    }

    80% {
        transform: rotate(-135deg);
    }
}
Nach dem Login kopieren

Erhöhen Sie den Falleffekt der Box wenn es nahe an die Spitze klettert:

@keyframes push {
    70% {
        transform: translateX(3em) translateY(0) rotate(calc(90deg * 3 - 5deg)) scale(1);
        filter: opacity(1);
    }

    80% {
        transform: translateX(0) translateY(-5em) rotate(-5deg) scale(0);
        filter: opacity(0.5);
    }

    90% {
        transform: translateX(0) translateY(0) rotate(0deg) scale(0);
    }
}
Nach dem Login kopieren

Zum Schluss die Teile ausblenden, die möglicherweise über die Seite hinausragen:

body {
    overflow: hidden;
}
Nach dem Login kopieren

Fertig!

Verwandte Empfehlungen:

So verwenden Sie reines CSS, um den Animationseffekt einer allein gehenden Person zu erzielen (Quellcode im Anhang)

Wie man mit reinem CSS einen Papierkran implementiert (Quellcode im Anhang)

Das obige ist der detaillierte Inhalt vonSo verwenden Sie reines CSS, um einen Box-Throwing-Loader zu implementieren (Quellcode im Anhang). 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