首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[分享]css做手动拖动进度条

发布于 2024-11-11 15:53:45
0
13

在Web应用程序中,经常需要用到进度条。进度条通常用于显示文件下载、表单提交等操作的进度,帮助用户了解上述操作的完成情况。在这篇文章中,我们将介绍如何使用CSS制作一个手动拖动进度条。HTML结构: ...

在Web应用程序中,经常需要用到进度条。进度条通常用于显示文件下载、表单提交等操作的进度,帮助用户了解上述操作的完成情况。在这篇文章中,我们将介绍如何使用CSS制作一个手动拖动进度条。

HTML结构:
<div class="progress">
  <div class="bar"></div>
</div>

CSS样式:
.progress {
  border: 1px solid #ddd;
  width: 300px;
  height: 20px;
  position: relative;
}
.bar {
  height: 100%;
  background-color: #4CAF50;
  width: 0%;
  position: absolute;
} 

我们首先定义了一个进度条的容器,class为progress。该容器的宽度为300px,高度为20px,并设置边框为1px solid #ddd,做出一个简单的边框效果。接着定义了一个class为bar的子元素,用来表示进度条的填充部分。该子元素的高度为100%,即与父元素一样高,宽度为0%。我们通过设置其position为absolute,可以将其与其父元素进行定位,以便我们使用left属性来动态地更改其宽度。

JavaScript代码:
var progressBar = document.querySelector('.bar');
var progress = document.querySelector('.progress');
var dragging = false;

progressBar.addEventListener('mousedown', function(e) {
  dragging = true;
});

progress.addEventListener('mousemove', function(e) {
  if (dragging) {
    var pos = (e.pageX - progress.offsetLeft) / progress.offsetWidth;
    progressBar.style.width = pos * 100 + '%';
  }
});

document.addEventListener('mouseup', function(e) {
  dragging = false;
}); 

以上是JavaScript代码。当我们点击进度条的填充部分时,我们会设置dragging变量为true。然后,我们在进度条容器上添加mousemove事件侦听器。当我们正在拖动时,我们计算数据偏移量,即当前鼠标位置相对于进度条容器左侧的距离,然后将其除以进度条容器的宽度,计算百分比。最后,设置进度条填充部分的宽度等于当前位置的百分比。最后,我们在整个文档上添加mouseup事件侦听器,以便在我们停止拖动时将dragging变量设置为false。

最后,我们就可以制作一个手动拖动进度条了。使用上述代码,我们可以自定义进度条的颜色、宽度、高度、容器大小等,并通过拖拽填充部分来展示进度条。无论在什么情况下,都可以使用这种方法来制作进度条。

评论
一个月内的热帖推荐
91云脑
Lv.1普通用户

62849

帖子

14

小组

291

积分

赞助商广告
站长交流