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 相关文章推荐
基于jQuery图片平滑连续滚动插件
Apr 27 Javascript
jquery 如何动态添加、删除class样式方法介绍
Nov 07 Javascript
JavaScript 作用域链解析
Nov 13 Javascript
JS中字符串trim()使用示例
May 26 Javascript
javascript实现五星评分功能
Nov 10 Javascript
如何利用JS通过身份证号获取当事人的生日、年龄、性别
Jan 22 Javascript
基于jQuery实现Ajax验证用户名是否存在实例
Mar 30 Javascript
JS实现移动端按首字母检索城市列表附源码下载
Jul 05 Javascript
angular2模块和共享模块详解
Apr 08 Javascript
微信小程序页面缩放式侧滑效果的实现代码
Nov 15 Javascript
React+Antd+Redux实现待办事件的方法
Mar 14 Javascript
koa2 数据api中间件设计模型的实现方法
Jul 13 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 echo()和print()、require()和include()函数区别说明
2010/03/27 PHP
php中的注释、变量、数组、常量、函数应用介绍
2012/11/16 PHP
PHP过滤黑名单关键字的方法
2014/12/01 PHP
基于PHP实现商品成交时发送短信功能
2016/05/11 PHP
PHP如何实现跨域
2016/05/30 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
PHP获取本周所有日期或者最近七天所有日期的方法
2018/06/20 PHP
对 lightbox JS 图片控件进行了一下改造, 使其他支持复杂的图片说明
2010/03/20 Javascript
JavaScript词法作用域与调用对象深入理解
2012/11/29 Javascript
javascript实现网页屏蔽Backspace事件,输入框不屏蔽
2015/07/21 Javascript
Vue实例简单方法介绍
2017/01/20 Javascript
Vue.js学习之过滤器详解
2017/01/22 Javascript
jQuery实现鼠标跟随效果
2017/02/20 Javascript
Router解决跨模块下的页面跳转示例
2018/01/11 Javascript
vuejs 动态添加input框的实例讲解
2018/08/24 Javascript
浅谈express.js框架中间件(middleware)
2019/04/07 Javascript
JavaScript数组及常见操作方法小结
2019/11/13 Javascript
Vue v-bind动态绑定class实例方法
2020/01/15 Javascript
Openlayers测量距离与面积的实现方法
2020/09/25 Javascript
Js数组扁平化实现方法代码总汇
2020/11/11 Javascript
在Python中操作字典之fromkeys()方法的使用
2015/05/21 Python
Python中操作mysql的pymysql模块详解
2016/09/13 Python
详解pandas库pd.read_excel操作读取excel文件参数整理与实例
2019/02/17 Python
在python tkinter中Canvas实现进度条显示的方法
2019/06/14 Python
python 批量添加的button 使用同一点击事件的方法
2019/07/17 Python
Python Django 封装分页成通用的模块详解
2019/08/21 Python
python多进程并行代码实例
2019/09/30 Python
关于Python-faker的函数效果一览
2019/11/28 Python
Python阶乘求和的代码详解
2020/02/14 Python
Python利用Xpath选择器爬取京东网商品信息
2020/06/01 Python
Blancsom美国/加拿大:服装和生活用品供应商
2018/07/27 全球购物
澳大利亚电商Catch新西兰站:Catch.co.nz
2020/05/30 全球购物
校庆筹备方案
2014/03/30 职场文书
市级绿色学校申报材料
2014/08/25 职场文书
天河观后感
2015/06/11 职场文书
2016小学教师读书心得体会
2016/01/13 职场文书