Maison  >  Article  >  interface Web  >  Comment implémenter la barre de progression en CSS

Comment implémenter la barre de progression en CSS

PHPz
PHPzoriginal
2023-04-23 16:35:324294parcourir

Implémentation CSS de la barre de progression

En tant que composant commun, la barre de progression apparaît souvent dans divers sites Web et applications. Par exemple, la progression du téléchargement, la progression du téléchargement, la progression du chargement de la page Web, etc. Il est très simple d'implémenter une barre de progression en utilisant CSS. Cet article présentera aux lecteurs la méthode d'implémentation d'une barre de progression en détail.

Structure HTML

Pour implémenter une barre de progression simple, vous devez d'abord définir la structure HTML. Voici la structure HTML la plus basique :

<div class="progress">
  <div class="progress-bar"></div>
</div>

Parmi eux, progress est le conteneur qui représente la barre de progression, et progress-bar représente la barre de progression elle-même. Bien sûr, nous pouvons également ajouter plus d'éléments dans progress, comme du texte de progression, etc. progress是表示进度条的容器,progress-bar是表示进度条本身。当然,我们也可以在progress中添加更多的元素,比如进度文字等等。

CSS样式

接下来,我们需要添加CSS样式来实现进度条。

首先,需要给progress容器设置宽度和高度,并在CSS属性中设置position: relativeoverflow: hidden。这样可以保证进度条在容器中显示,并可以隐蔽容器外的内容,同时将进度条容器的定位设置为相对定位。

.progress {
  width: 100%;
  height: 20px;
  position: relative;
  overflow: hidden;
}

然后,为progress-bar设置绝对定位,并将左边距设置为0。同时,将进度条的宽度设置为0,这样在一开始进度条将不会显示。

.progress-bar {
  position: absolute;
  left: 0;
  top: 0;
  width: 0;
  height: 100%;
  background-color: #007bff;
  transition: width 0.8s ease;
}

代码解释:

  • left: 0 表示将进度条放置在容器的最左边。
  • top: 0 表示将进度条放置在容器的最上面。
  • width: 0 表示进度条的初始宽度为0,所以一开始不会显示。
  • height: 100% 表示将进度条的高度设置为和容器一样高。
  • background-color: #007bff 是设置进度条的颜色。
  • transition: width 0.8s ease 表示使用CSS过渡动画,将进度条宽度缓慢增加到目标值。

最后,我们可以使用JavaScript或者CSS动画来控制进度条的宽度,从而实现进度的显示。以下是使用JavaScript的示例:

const progressBar = document.querySelector('.progress-bar');
let percentage = 0;

function progress() {
  if (percentage < 100) {
    percentage++;
    progressBar.style.width = percentage + '%';
  } else {
    clearInterval(intervalId);
  }
}

const intervalId = setInterval(progress, 20);

此示例将进度条的宽度从0%逐渐增加到100%,并在100%处停止。我们也可以根据实际情况来定义进度条的宽度和增加的速度。

如果不想使用JavaScript,我们也可以使用CSS动画来实现进度条的效果。以下是一个简单的CSS动画示例:

.progress-bar {
  position: absolute;
  left: 0;
  top: 0;
  width: 0;
  height: 100%;
  background-color: #007bff;
  animation: progress 5s ease-in-out;
}

@keyframes progress {
  0% {
    width: 0;
  }
  50% {
    width: 50%;
  }
  100% {
    width: 100%;
  }
}

此示例将进度条的宽度从0%逐渐增加到100%,并在一定时间内完成。在其中,animation属性定义了动画的名称,时间以及缓动方式。@keyframes

Styles CSS

Ensuite, nous devons ajouter des styles CSS pour implémenter la barre de progression.

Tout d'abord, vous devez définir la largeur et la hauteur du conteneur progress, et définir position : relative et overflow : caché dans le CSS. propriétés. Cela garantit que la barre de progression est affichée dans le conteneur et masque le contenu à l'extérieur du conteneur. En même temps, le positionnement du conteneur de la barre de progression est défini sur un positionnement relatif. 🎜rrreee🎜Ensuite, définissez le positionnement absolu de la progress-bar et définissez la marge gauche sur 0. En même temps, définissez la largeur de la barre de progression sur 0 afin que la barre de progression ne s'affiche pas au début. 🎜rrreee🎜Explication du code : 🎜
  • left : 0 signifie placer la barre de progression sur le côté le plus à gauche du conteneur.
  • top : 0 signifie placer la barre de progression en haut du conteneur.
  • width : 0 signifie que la largeur initiale de la barre de progression est de 0, elle ne sera donc pas affichée initialement.
  • hauteur : 100 % signifie définir la hauteur de la barre de progression à la même hauteur que celle du conteneur.
  • background-color: #007bff sert à définir la couleur de la barre de progression.
  • transition : largeur 0,8 s facilité signifie utiliser l'animation de transition CSS pour augmenter lentement la largeur de la barre de progression jusqu'à la valeur cible.
🎜Enfin, nous pouvons utiliser une animation JavaScript ou CSS pour contrôler la largeur de la barre de progression afin d'afficher la progression. Voici un exemple utilisant JavaScript : 🎜rrreee🎜Cet exemple augmente progressivement la largeur de la barre de progression de 0 % à 100 %, en s'arrêtant à 100 %. On peut également définir la largeur et la vitesse croissante de la barre de progression en fonction de la situation réelle. 🎜🎜Si vous ne souhaitez pas utiliser JavaScript, nous pouvons également utiliser une animation CSS pour obtenir l'effet de la barre de progression. Voici un exemple simple d'animation CSS : 🎜rrreee🎜 Cet exemple augmente progressivement la largeur de la barre de progression de 0% à 100% et la termine dans un certain temps. Parmi eux, l'attribut animation définit le nom, l'heure et la méthode d'accélération de l'animation. @keyframes représente les images clés qui définissent l'animation de la barre de progression, de 0 % à 100 %. 🎜🎜Résumé🎜🎜Ce qui précède explique comment implémenter une barre de progression en utilisant CSS. Grâce à la combinaison de la structure HTML et du style CSS, une barre de progression de base peut être facilement complétée. En termes d'implémentation, nous pouvons utiliser une animation JavaScript ou CSS pour contrôler la largeur de la barre de progression afin d'afficher la progression. Dans différents projets, le style et la méthode d'affichage de la barre de progression doivent être définis en fonction de la situation réelle pour obtenir de meilleurs résultats. 🎜

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