Maison  >  Article  >  interface Web  >  Comment utiliser CSS pour obtenir des effets dynamiques d'animation de rotation à changement de couleur

Comment utiliser CSS pour obtenir des effets dynamiques d'animation de rotation à changement de couleur

不言
不言original
2018-08-02 10:58:013121parcourir

Cet article vous présente comment utiliser CSS pour obtenir l'effet dynamique d'une animation de rotation à changement de couleur. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Aperçu de l'effet

Comment utiliser CSS pour obtenir des effets dynamiques danimation de rotation à changement de couleur

Interprétation du code

Définir dom, conteneur Contient 9 éléments :

<div>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
</div>

Affichage centré :

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

Définir la taille du conteneur :

.container {
    width: 30em;
    height: 30em;
    font-size: 12px;
}

Définir le style des lignes dans le conteneur :

.container {
    color: lime;
}

.container span {
    position: absolute;
    width: 5em;
    height: 5em;
    border-style: solid;
    border-width: 1em 1em 0 0;
    border-color: currentColor transparent;
    border-radius: 50%;
}

Centrer la ligne dans le conteneur :

.container {
    display: flex;
    align-items: center;
    justify-content: center;
}

Définir des variables pour étendre progressivement la ligne du centre vers l'extérieur :

.container span {
    --diameter: calc(5em + (var(--n) - 1) * 3em);
    width: var(--diameter);
    height: var(--diameter);
}

.container span:nth-child(1) {
    --n: 1;
}

.container span:nth-child(2) {
    --n: 2;
}

.container span:nth-child(3) {
    --n: 3;
}

.container span:nth-child(4) {
    --n: 4;
}

.container span:nth-child(5) {
    --n: 5;
}

.container span:nth-child(6) {
    --n: 6;
}

.container span:nth-child(7) {
    --n: 7;
}

.container span:nth-child(8) {
    --n: 8;
}

.container span:nth-child(9) {
    --n: 9;
}

Définir l'animation pour faire pivoter la ligne Effet :

.container span {
    animation: rotating linear infinite;
    animation-duration: calc(5s / (9 - var(--n) + 1));
}

@keyframes rotating {
    to {
        transform: rotate(1turn);
    }
}

Définissez l'effet d'animation du changement de couleur, en prenant 360 degrés autour du cercle de teinte comme 100%, la variable --percent fait référence à la position de ce 100% :

@keyframes change-color {
    0%, 100% {
        --percent: 0;
    }

    10% {
        --percent: 10;
    }

    20% {
        --percent: 20;
    }

    30% {
        --percent: 30;
    }

    40% {
        --percent: 40;
    }

    50% {
        --percent: 50;
    }

    60% {
        --percent: 60;
    }

    70% {
        --percent: 70;
    }

    80% {
        --percent: 80;
    }

    90% {
        --percent: 90;
    }
}

Enfin, appliquez l'effet d'animation de changement de couleur au conteneur :

.container {
    --deg: calc(var(--percent) / 100 * 360deg);
    color: hsl(var(--deg), 100%, 50%);
    animation: change-color 5s linear infinite;
}

Vous avez terminé !

Articles connexes recommandés :

Comment utiliser CSS et D3 pour obtenir des effets dynamiques de vaisseaux spatiaux

Comment utiliser CSS et D3 pour atteindre six sans fin L'effet de l'espace de bord

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn