js实现滑动进度条效果


Posted in Javascript onAugust 21, 2020

本文实例为大家分享了js实现滑动进度条效果的具体代码,供大家参考,具体内容如下

js实现滑动进度条效果

进度条:

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8" />
 <title>js滑动进度条效果</title>
 <style>
  *{margin:0;padding:0;user-select:none;}
  .progress-bar{position:relative;height:10px;width:400px;margin:200px auto;background:#ebeef5;border-radius:10px;}
  .progress-bar .pro-bar{position:absolute;left:0;height:10px;width:10px;background:#409eff;}
  .progress-bar .min-num{position:absolute;left:-20px;top:-5px;}
  .progress-bar .max-num{position:absolute;right:-40px;top:-5px;}
  .progress-bar .block {position:absolute;height:30px;width:10px;background:#ccc;top:-10px;border-radius:10px;}
  .progress-bar .block div{position:absolute;display:none;left:-20px;top:-45px;width:50px;height:30px;text-align:center;line-height:30px;background:#ccc;border-radius:20px;}
  .progress-bar .block:hover div{display:block;font-size:10%;color:#fff;background:#409eff;}
 </style>
</head>
<body>
 <div class="progress-bar">
 <span class="min-num">0</span>
 <span class="max-num">100</span>
 <div class="pro-bar"></div>
 <div class="block">
  <div>0</div>
 </div>
 </div>
</body>
<script>
 (function(){
 let moveBlock = document.querySelector('.block');
 let proBar = document.querySelector('.pro-bar');
 let flag = false;
 let startX = null;
 let moveMax = (400 - 10); // 背景条宽度减去滑块的宽度
 moveBlock.onmousedown = function(e){
  startX = e.pageX;
  moveBlock.style.left ? moveBlock.style.left : moveBlock.style.left = '0px';
  let startLeft = parseInt(moveBlock.style.left);
  document.onmousemove = function(e){
  let moveX = (e.pageX - startX) > 0 ? true : false;
  let moveSection = startLeft + (e.pageX - startX);
  // 限定移动范围
  if (moveSection >= 0 && moveSection <= moveMax) {
   let percent = ((startLeft + (e.pageX - startX)) / moveMax).toFixed(4) * 100;
   percent.toString().length > 5 ? percent = percent.toString().subStr(0, 5) : percent = percent.toString();
   moveBlock.style.left = startLeft + (e.pageX - startX) + 'px';
   proBar.style.width = moveBlock.style.left;
   moveBlock.querySelector('div').innerText = percent + '%';
  }
  };
 };
 // 鼠标松开移除事件
 moveBlock.onmouseup = function(){
  document.onmousemove = null;
 };
 })();
</script>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
自动生成文章摘要的代码[JavaScript 版本]
Mar 20 Javascript
借用Google的Javascript API Loader来加速你的网站
Jan 28 Javascript
Extjs学习笔记之八 继承和事件基础
Jan 08 Javascript
JS图片根据鼠标滚动延时加载的实例代码
Jul 13 Javascript
Enter转换为Tab的小例子(兼容IE,Firefox)
Nov 14 Javascript
js 实现浏览历史记录示例
Apr 20 Javascript
详解AngularJs中$resource和restfu服务端数据交互
Sep 21 Javascript
Vue中之nextTick函数源码分析详解
Oct 17 Javascript
解决vue中无法动态修改jqgrid组件 url地址的问题
Mar 01 Javascript
JavaScript JMap类定义与使用方法示例
Jan 22 Javascript
Vue项目配置跨域访问和代理proxy设置方式
Sep 08 Javascript
vue实现单一筛选、删除筛选条件
Oct 26 Javascript
探索浏览器页面关闭window.close()的使用详解
Aug 21 #Javascript
vue组件开发之tab切换组件使用详解
Aug 21 #Javascript
vue组件开发之slider组件使用详解
Aug 21 #Javascript
Vue左滑组件slider使用详解
Aug 21 #Javascript
vue实现移动端触屏拖拽功能
Aug 21 #Javascript
vue实现移动端拖动排序
Aug 21 #Javascript
微信小程序实现聊天室
Aug 21 #Javascript
You might like
生成静态页面的PHP类
2006/11/25 PHP
让PHP更快的提供文件下载的代码
2012/06/13 PHP
php实现PDO中捕获SQL语句错误的方法
2017/02/16 PHP
javaScript checkbox 全选/反选及批量删除
2010/04/28 Javascript
Array, Array Constructor, for in loop, typeof, instanceOf
2011/09/13 Javascript
jQuery表格插件ParamQuery简单使用方法示例
2013/12/05 Javascript
javascript上下方向键控制表格行选中并高亮显示的方法
2015/02/13 Javascript
javascript实现简单的分页特效
2015/08/12 Javascript
详解Bootstrap插件
2016/04/25 Javascript
客户端验证用户名和密码的方法详解
2016/06/16 Javascript
10 种最常见的 Javascript 错误(频率最高)
2018/02/08 Javascript
JSON数据中存在单个转义字符“\”的处理方法
2018/07/11 Javascript
利用Angular7开发一个Radio组件的全过程
2019/07/11 Javascript
中级前端工程师必须要掌握的27个JavaScript 技巧(干货总结)
2019/09/23 Javascript
vue点击自增和求和的实例代码
2019/11/06 Javascript
[01:03:37]Secret vs VGJ.S Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
[45:50]完美世界DOTA2联赛PWL S3 CPG vs Forest 第二场 12.16
2020/12/17 DOTA
python常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)
2014/08/25 Python
matplotlib绘图实例演示标记路径
2018/01/23 Python
Django中的Signal代码详解
2018/02/05 Python
python 获取指定文件夹下所有文件名称并写入列表的实例
2018/04/23 Python
Python ATM功能实现代码实例
2020/03/19 Python
python实现将字符串中的数字提取出来然后求和
2020/04/02 Python
PyTorch中torch.tensor与torch.Tensor的区别详解
2020/05/18 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
2020/09/01 Python
python利用proxybroker构建爬虫免费IP代理池的实现
2021/02/21 Python
斯德哥尔摩通票:Stockholm Pass
2018/01/09 全球购物
Halston Heritage官网:简洁的日装,稍显奢华的晚装
2018/11/20 全球购物
ECCO英国官网:丹麦鞋履品牌
2019/09/03 全球购物
分公司经理岗位职责
2013/11/11 职场文书
成功经营餐厅的创业计划书范文
2013/12/26 职场文书
冬季施工防火方案
2014/05/17 职场文书
观看信仰心得体会
2014/09/04 职场文书
酒店管理失职检讨书
2014/09/16 职场文书
团员自我评价范文
2015/03/10 职场文书
房地产公司财务总监岗位职责
2015/04/03 职场文书