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
544 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!

source:php.cn
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