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动态创建DOM、表单元素的实现代码
Aug 09 Javascript
JavaScript函数详解
Nov 17 Javascript
JavaScript实现列出数组中最长的连续数
Dec 29 Javascript
JavaScript中的类与实例实现方法
Jan 23 Javascript
javascript 应用小技巧方法汇总
Jul 05 Javascript
jQuery采用连缀写法实现的折叠菜单效果
Sep 18 Javascript
javascript实现标签切换代码示例
May 22 Javascript
第二篇Bootstrap起步
Jun 21 Javascript
浅谈javascript中关于日期和时间的基础知识
Jul 13 Javascript
JS正则表达式之非捕获分组用法实例分析
Dec 28 Javascript
Avalonjs双向数据绑定与监听的实例代码
Jun 23 Javascript
jQuery实现获取多选框的值示例
Feb 07 jQuery
探索浏览器页面关闭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/10/09 PHP
PHP curl_setopt()函数实例代码与参数分析
2011/06/02 PHP
thinkphp的静态缓存用法分析
2014/11/29 PHP
PHP实现批量上传单个文件
2015/12/29 PHP
Laravel实现autoload方法详解
2017/05/07 PHP
Code: write(s,d) 输出连续字符串
2007/08/19 Javascript
模拟电子签章盖章效果的jQuery插件源码
2013/06/24 Javascript
div模拟选择框示例代码
2013/11/03 Javascript
引用 js在IE与FF之间的区别详细解析
2013/11/20 Javascript
让input框实现类似百度的搜索提示(基于jquery事件监听)
2014/01/31 Javascript
解析javascript瀑布流原理实现图片滚动加载
2016/03/10 Javascript
jsp 自动编译机制详细介绍
2016/12/01 Javascript
AngularJS 单选框及多选框的双向动态绑定
2017/04/20 Javascript
Angular 开发学习之Angular CLI的安装使用
2017/12/31 Javascript
使用vue2实现购物车和地址选配功能
2018/03/29 Javascript
vue中v-for循环给标签属性赋值的方法
2018/10/18 Javascript
跨域请求两种方法 jsonp和cors的实现
2018/11/11 Javascript
Python解析json文件相关知识学习
2016/03/01 Python
解决python2.7 查询mysql时出现中文乱码
2016/10/09 Python
详解python脚本自动生成需要文件实例代码
2017/02/04 Python
Python实现通过文件路径获取文件hash值的方法
2017/04/29 Python
python pandas dataframe 行列选择,切片操作方法
2018/04/10 Python
详解Python3.6安装psutil模块和功能简介
2018/05/30 Python
python之当你发现QTimer不能用时的解决方法
2019/06/21 Python
python启动应用程序和终止应用程序的方法
2019/06/28 Python
Django如何使用asyncio协程和ThreadPoolExecutor多线程
2020/10/12 Python
python音频处理的示例详解
2020/12/23 Python
python爬虫scrapy基本使用超详细教程
2021/02/20 Python
HTML5新增加标签和功能概述
2016/09/05 HTML / CSS
HTML5 文件域+FileReader 分段读取文件并上传到服务器
2017/10/23 HTML / CSS
美国网上购买眼镜:Eyeconic
2017/07/29 全球购物
Bulk Powders意大利:运动补充在线商店
2019/02/09 全球购物
State Cashmere官网:半零售价可持续蒙古羊绒
2020/02/26 全球购物
程序员求职信
2014/04/16 职场文书
违反工作规定检讨书范文
2014/12/14 职场文书
教师考核评语大全
2014/12/31 职场文书