用CSS+JS实现的进度条效果效果

让我们来一步步详细讲解“用CSS+JS实现的进度条效果效果”的完整攻略。

让我们来一步步详细讲解“用CSS+JS实现的进度条效果效果”的完整攻略。

步骤一:HTML结构

首先需要有一段HTML结构来放置进度条,示例如下:

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

其中,一般把 .progress-wrapper 定义为进度条容器,.progress-bar则定义为进度条进度条。

步骤二:CSS样式

对于进度条样式,我们需要定义 .progress-wrapper.progress-bar 这两个类的样式。

.progress-wrapper

对于 .progress-wrapper 类,我们需要先设置宽度和高度,如下:

.progress-wrapper {
  width: 200px;
  height: 10px;
}

接下来,我们可以为其添加一些背景色或边框,以便更好地展示进度条。

.progress-wrapper {
  width: 200px;
  height: 10px;
  background-color: #f5f5f5;
  border-radius: 5px;
  border: 1px solid #ddd;
}

.progress-bar

对于 .progress-bar 类,我们需要设置其宽度、高度、背景色和边框(如果有)。

.progress-bar {
  width: 0%;
  height: 100%;
  background-color: #7FDBFF;
  border-radius: 5px;
}

其中, width: 0%; 表示进度条默认为0%。

步骤三:JS逻辑

JS逻辑是进度条最核心的部分,它负责更新进度条的宽度。

首先我们需要获取 .progress-bar 元素,然后定义一个更新进度条宽度的函数,示例如下:

const progressBar = document.querySelector('.progress-bar');
const updateProgress = () => {
  // 获取进度值
  const progressValue = 50;

  // 更新宽度
  progressBar.style.width = `${progressValue}%`;
};

其中,我们获取 .progress-bar 元素的方式是使用 document.querySelector('.progress-bar')

接下来,我们在 updateProgress 函数中定义如何更新进度条宽度。这里我模拟一个进度值为50%的情况,并将其赋值给 progressValue 变量。最后通过设置 progressBar.style.width 来更新进度条宽度。

步骤四:定时器

最后,我们使用 setInterval 函数来定时调用 updateProgress 函数,示例如下:

setInterval(() => {
  updateProgress();
}, 1000);

这里我将定时器的时间间隔设置为1秒。这样,每1秒钟,就会更新一次进度条宽度,展示不同的进度值。

示例说明

接下来,让我们通过两个示例来更好地理解如何实现进度条。

示例一:静态进度条

在这个示例中,我们不使用JS逻辑,而是用CSS静态地制作出一条进度条。

首先,我们先定义HTML结构和CSS样式,如下所示:

<div class="progress-wrapper">
  <div class="progress-bar"></div>
</div>
.progress-wrapper {
  width: 200px;
  height: 10px;
  background-color: #f5f5f5;
  border-radius: 5px;
  border: 1px solid #ddd;
}

.progress-bar {
  width: 50%;
  height: 100%;
  background-color: #7FDBFF;
  border-radius: 5px;
}

这里,我们将 .progress-bar 的宽度设置为50%,即进度条的宽度为200 * 50% = 100px。

示例二:动态进度条

在这个示例中,我们使用JS逻辑来制作动态的进度条。

<div class="progress-wrapper">
  <div class="progress-bar"></div>
</div>
.progress-wrapper {
  width: 200px;
  height: 10px;
  background-color: #f5f5f5;
  border-radius: 5px;
  border: 1px solid #ddd;
}

.progress-bar {
  width: 0%;
  height: 100%;
  background-color: #7FDBFF;
  border-radius: 5px;
}
const progressBar = document.querySelector('.progress-bar');
const updateProgress = () => {
  const progressValue = Math.floor(Math.random() * 101); // 随机生成进度值
  progressBar.style.width = `${progressValue}%`;
};
setInterval(() => {
  updateProgress();
}, 1000);

这里我们每1秒钟调用一次 updateProgress 函数,该函数会生成一个0-100之间的随机数,然后通过设置 .progress-bar 元素的 width 属性来更新进度条的宽度。

以上便是用CSS+JS实现的进度条效果完整攻略。

本文标题为:用CSS+JS实现的进度条效果效果

基础教程推荐