Un loader avec animation en pur CSS

Stephan GIULIANI

11/11/2022  -

Découvrez comment implémenter un loader animé en pur CSS !

Loader animé en pur CSS

Pour ce tuto, vous allez pouvoir créer un loader en pur CSS pour pouvoir l'intégrer par la suite dans vos pages web.

Code HTML

Le code HTML est tout ce qu'il y a de plus simple et se résume aux lignes suivantes 

<div id="loader-ring-container">
    <div id="loader-ring-container">
        <div class="loader-ring-wrapper">
            <div class="loader-ring"></div>
            <div class="loader-ring"></div>
            <div class="loader-ring"></div>
        </div>
    </div>
</div>

Code CSS

Le CSS, un peu plus long se décompose en deux parties. La première partie va définir les trois anneaux qui seront imbriqués et animés ainsi que les conteneurs ; chaque anneau appellera l'animation qui lui est affectée. La seconde partie est consacrée aux animations qui seront lancées avec un décalage de quelques secondes l'une par rapport à l'autre pour créer cet effet visuel de rotation imbriquée.

Le CSS pour les anneaux

#loader-ring-container
{
    height: 250px;
    margin: 0 auto;
    position: relative;
    width: 250px;
}
.loader-ring-wrapper
{
    left: 125px;
    position: absolute;
    top: 125px;
}
.loader-ring
{
    border-left: 4px solid #1BC9F5;
    border-radius: 50%;
        -webkit-border-radius: 50%;
        -moz-border-radius: 50%;
        -ms-border-radius: 50%;
        -o-border-radius: 50%;
    border-top: 4px solid #1BC9F5;
    height: 100px;
    left: -21px;
    margin: -30px;
    position: absolute;
    top: -66.66px;
    width: 100px;
    animation: loader-ring-animate 4s linear infinite;
        -webkit-animation: loader-ring-animate 4s linear infinite;
}
.loader-ring:nth-child(2)
{
    border-left: 4px solid #37EB26;
    border-top: 4px solid #37EB26;
    left: -63px;
    position: absolute;
    top: 4px;
    animation: loader-ring-animate-2 4s linear infinite;
        -webkit-animation: loader-ring-animate-2 4s linear infinite;
    animation-delay: -1s;
}
.loader-ring:nth-child(3)
{
    border-left: 4px solid #E41DB9;
    border-top: 4px solid #E41DB9;
    left: 22px;
    position: absolute;
    top: 4px;
    animation: loader-ring-animate-3 4s linear infinite;
        -webkit-animation: loader-ring-animate-3 4s linear infinite;
    animation-delay: -3s;
}




Le CSS pour les animations

@keyframes loader-ring-animate
{
    0%
    {
        transform: rotate(0deg);
            -webkit-transform: rotate(0deg);
            -moz-transform: rotate(0deg);
            -ms-transform: rotate(0deg);
            -o-transform: rotate(0deg);
    }
    100%
    {
        transform: rotate(360deg);
            -webkit-transform: rotate(360deg);
            -moz-transform: rotate(360deg);
            -ms-transform: rotate(360deg);
            -o-transform: rotate(360deg);
    }
}
@keyframes loader-ring-animate-2
{
    0%
    {
        transform: rotate(360deg);
            -webkit-transform: rotate(360deg);
            -moz-transform: rotate(360deg);
            -ms-transform: rotate(360deg);
            -o-transform: rotate(360deg);
    }
    100%
    {
        transform: rotate(0deg);
            -webkit-transform: rotate(0deg);
            -moz-transform: rotate(0deg);
            -ms-transform: rotate(0deg);
            -o-transform: rotate(0deg);
    }
}
@keyframes loader-ring-animate-3
{
    0%
    {
        transform: rotate(360deg);
        -webkit-transform: rotate(360deg);
        -moz-transform: rotate(360deg);
        -ms-transform: rotate(360deg);
        -o-transform: rotate(360deg);
    }
    100%
    {
        transform: rotate(0deg);
        -webkit-transform: rotate(0deg);
        -moz-transform: rotate(0deg);
        -ms-transform: rotate(0deg);
        -o-transform: rotate(0deg);
    }
}

Rendu

Voici le rendu final intégré dans une div

Conclusion

Ce tuto est une base que vous pouvez personnaliser à votre guise en modifiant les couleurs, la vitesse de rotation en modifiant la durée -webkit-animation: loader-ring-animate 4s linear infinite;) où 4s indique qu'il faut jouer l'animation complète en 4 secondes.

Bref, laissez libre cours à votre esprit créatif !

Infos contact

Stephan GIULIANI

  +33 6 14 58 91 37

  stephan@alternetive.fr

  www.alternetive.fr

Réseaux sociaux

Retrouvez sur les réseaux suivants 

 LinkedIn

 Facebook

 Twitter

Infos site

Plan du site

Me contacter

 

Stephan n'est pas ligne

© 2009 / 2022 - @lternetive! v. 5.0 - Reproduction même partielle interdite