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当一个变量为函数时 应该注意的一点细节小结
Dec 29 Javascript
JS实现黑色风格的网页TAB选项卡效果代码
Oct 09 Javascript
实例讲解js验证表单项是否为空的方法
Jan 09 Javascript
详解Javascript中的Object对象
Feb 28 Javascript
详解vue.js的devtools安装
May 26 Javascript
vue-router单页面路由
Jun 17 Javascript
微信小程序表单验证form提交错误提示效果
Jun 19 Javascript
vue.js 实现评价五角星组件的实例代码
Aug 13 Javascript
angular 用Observable实现异步调用的方法
Dec 27 Javascript
深入理解Puppeteer的入门教程和实践
Mar 05 Javascript
vue.js中导出Excel表格的案例分析
Jun 11 Javascript
利用promise及参数解构封装ajax请求的方法
Mar 24 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实现可精确验证身份证号码的工具类示例
2018/05/31 PHP
学习并汇集javascript匿名函数
2010/11/25 Javascript
关于捕获用户何时点击window.onbeforeunload的取消事件
2011/03/06 Javascript
我的NodeJs学习小结(一)
2014/07/06 NodeJs
JavaScript检查某个function是否是原生代码的方法
2014/08/20 Javascript
AngularJS入门教程之学习环境搭建
2014/12/06 Javascript
JS判断字符串包含的方法
2015/05/05 Javascript
JavaScript动态生成二维码图片
2016/04/20 Javascript
vue中用动态组件实现选项卡切换效果
2017/03/25 Javascript
Angular中的interceptors拦截器
2017/06/25 Javascript
如何理解Vue的render函数的具体用法
2017/08/30 Javascript
记一次webpack3升级webpack4的踩坑经历
2018/06/12 Javascript
Vue三种常用传值示例(父传子、子传父、非父子)
2018/07/24 Javascript
解决在vue项目中webpack打包后字体不生效的问题
2018/09/01 Javascript
开发用到的js封装方法(20种)
2018/10/12 Javascript
vue组件实践之可搜索下拉框功能
2018/11/25 Javascript
Vue 实现输入框新增搜索历史记录功能
2019/10/15 Javascript
基于Echarts图表在div动态切换时不显示的解决方式
2020/07/20 Javascript
JavaScript实现移动端拖动元素
2020/11/24 Javascript
python创建和使用字典实例详解
2013/11/01 Python
python中csv文件的若干读写方法小结
2018/07/04 Python
python基于Selenium的web自动化框架
2019/07/14 Python
Django工程的分层结构详解
2019/07/18 Python
Scrapy基于scrapy_redis实现分布式爬虫部署的示例
2020/09/29 Python
Python本地及虚拟解释器配置过程解析
2020/10/13 Python
python中四舍五入的正确打开方式
2021/01/18 Python
墨尔本最受欢迎的复古风格品牌:Princess Highway
2018/12/21 全球购物
荷兰街头时尚之家:Funkie House
2019/03/18 全球购物
体育专业个人的求职信范文
2013/09/21 职场文书
团员学习总结的自我评价范文
2013/10/14 职场文书
药品促销活动方案
2014/02/14 职场文书
认识深刻的检讨书
2014/02/16 职场文书
2014领导班子四风剖析对照检查材料思想汇报
2014/09/20 职场文书
2016元旦文艺汇演主持词
2015/07/06 职场文书
浅谈Python协程asyncio
2021/06/20 Python
Python借助with语句实现代码段只执行有限次
2022/03/23 Python