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 相关文章推荐
js下用层来实现select的title提示属性
Feb 23 Javascript
js Array对象的扩展函数代码
Apr 24 Javascript
js实现身份证号码验证的简单实例
Feb 19 Javascript
JS上传图片前实现图片预览效果的方法
Mar 02 Javascript
js实现缓冲运动效果的方法
Apr 10 Javascript
JavaScript中setTimeout和setInterval函数的传参及调用
Mar 11 Javascript
浅谈Webpack下多环境配置的思路
Jun 27 Javascript
详解vue axios用post提交的数据格式
Aug 07 Javascript
React实现全局组件的Toast轻提示效果
Sep 21 Javascript
vue-cli3添加模式配置多环境变量的方法
Jun 05 Javascript
uniapp 仿微信的右边下拉选择弹出框的实现代码
Jul 12 Javascript
ES11屡试不爽的新特性,你用上了几个
Oct 21 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
德生PL450的电路分析和低放电路的改进办法
2021/03/02 无线电
浅析php中json_encode()和json_decode()
2014/05/25 PHP
Win7 64位系统下PHP连接Oracle数据库
2014/08/20 PHP
详解php curl带有csrf-token验证模拟提交方法
2018/04/18 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
2018/06/16 PHP
在Laravel 的 Blade 模版中实现定义变量
2019/10/14 PHP
PHP哈希表实现算法原理解析
2020/12/11 PHP
判断滚动条到底部的JS代码
2013/11/04 Javascript
JavaScript中return false的用法
2015/03/12 Javascript
JavaScript箭头(arrow)函数详解
2017/06/04 Javascript
Vue中定义全局变量与常量的各种方式详解
2017/08/23 Javascript
node.js 用socket实现聊天的示例代码
2017/10/17 Javascript
利用vue+elementUI实现部分引入组件的方法详解
2017/11/22 Javascript
Vue render渲染时间戳转时间,时间转时间戳及渲染进度条效果
2018/07/27 Javascript
JavaScript中工厂函数与构造函数示例详解
2019/05/06 Javascript
ionic2.0双击返回键退出应用
2019/09/17 Javascript
使用konva和vue-konva库实现拖拽滑块验证功能
2020/04/27 Javascript
js实现拾色器插件(ColorPicker)
2020/05/21 Javascript
python 递归遍历文件夹,并打印满足条件的文件路径实例
2017/08/30 Python
Python with语句上下文管理器两种实现方法分析
2018/02/09 Python
python 实现对文件夹内的文件排序编号
2018/04/12 Python
python如何爬取网站数据并进行数据可视化
2019/07/08 Python
详解python中自定义超时异常的几种方法
2019/07/29 Python
如何在Cloud Studio上执行Python代码?
2019/08/09 Python
python 获取谷歌浏览器保存的密码
2021/01/06 Python
植物选择:Botanic Choice
2017/02/15 全球购物
沙特阿拉伯电子产品和家用电器购物网站:Black Box
2019/07/24 全球购物
写好自荐信要注意的问题
2013/11/10 职场文书
银行财务部实习生的自我鉴定
2013/11/27 职场文书
维护民族团结演讲稿
2014/08/27 职场文书
干部作风整顿个人剖析材料
2014/10/06 职场文书
小学生思想品德评语
2014/12/31 职场文书
单身证明范本
2015/06/15 职场文书
公司要求试用期员工提交“述职报告”,该怎么写?
2019/07/17 职场文书
关于食品安全的演讲稿范文(三篇)
2019/10/21 职场文书
Python内置类型集合set和frozenset的使用详解
2022/04/26 Python