Maison > interface Web > tutoriel CSS > Comment puis-je créer un indicateur de progression CSS uniquement qui s'arrête à un pourcentage spécifique ?

Comment puis-je créer un indicateur de progression CSS uniquement qui s'arrête à un pourcentage spécifique ?

Susan Sarandon
Libérer: 2024-12-14 03:14:14
original
620 Les gens l'ont consulté

How Can I Create a CSS-Only Progress Indicator That Stops at a Specific Percentage?

Indicateurs de progression qui s'arrêtent à des pourcentages spécifiques utilisant CSS uniquement

Vous avez recherché des barres de progression sur ce site Web, mais celles que vous J'ai trouvé tous les cercles animés qui vont à 100%. Cependant, vous souhaitez créer une barre de progression qui s'arrête à certains pourcentages, comme celle affichée dans la capture d'écran ci-dessous.

Pour obtenir cet effet en utilisant uniquement CSS, vous pouvez utiliser une combinaison de techniques de découpage et d'animation. . Prenons l'exemple du violon suivant :

.wrapper {
  width: 100px; /* Set the size of the progress bar */
  height: 100px;
  position: absolute; /* Enable clipping */
  clip: rect(0px, 100px, 100px, 50px); /* Hide half of the progress bar */
}
/* Set the sizes of the elements that make up the progress bar */
.circle {
  width: 80px;
  height: 80px;
  border: 10px solid green;
  border-radius: 50px;
  position: absolute;
  clip: rect(0px, 50px, 100px, 0px);
}
/* Using the data attributes for the animation selectors. */
/* Base settings for all animated elements */
div[data-anim~=base] {
  -webkit-animation-iteration-count: 1;  /* Only run once */
  -webkit-animation-fill-mode: forwards; /* Hold the last keyframe */
  -webkit-animation-timing-function:linear; /* Linear animation */
}

.wrapper[data-anim~=wrapper] {
  -webkit-animation-duration: 0.01s; /* Complete keyframes asap */
  -webkit-animation-delay: 3s; /* Wait half of the animation */
  -webkit-animation-name: close-wrapper; /* Keyframes name */
}

.circle[data-anim~=left] {
  -webkit-animation-duration: 6s; /* Full animation time */
  -webkit-animation-name: left-spin;
}

.circle[data-anim~=right] {
  -webkit-animation-duration: 3s; /* Half animation time */
  -webkit-animation-name: right-spin;
}
/* Rotate the right side of the progress bar from 0 to 180 degrees */
@-webkit-keyframes right-spin {
  from {
    -webkit-transform: rotate(0deg);
  }
  to {
    -webkit-transform: rotate(180deg);
  }
}
/* Rotate the left side of the progress bar from 0 to 360 degrees */
@-webkit-keyframes left-spin {
  from {
    -webkit-transform: rotate(0deg);
  }
  to {
    -webkit-transform: rotate(360deg);
  }
}
/* Set the wrapper clip to auto, effectively removing the clip */
@-webkit-keyframes close-wrapper {
  to {
    clip: rect(auto, auto, auto, auto);
  }
}
Copier après la connexion
<div class="wrapper" data-anim="base wrapper">
  <div class="circle" data-anim="base left"></div>
  <div class="circle" data-anim="base right"></div>
</div>
Copier après la connexion

Dans ce violon, une combinaison de découpage, d'éléments circulaires et d'animation est utilisée pour créer l'effet souhaité. En masquant la moitié de la barre de progression à l'aide de la propriété clip, puis en animant la rotation de différentes parties des éléments circulaires, on obtient une barre de progression qui s'arrête à des pourcentages spécifiques.

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal