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的Cookies
Jan 16 Javascript
JavaScript Array扩展实现代码
Oct 14 Javascript
JS遮罩层效果 兼容ie firefox jQuery遮罩层
Jul 26 Javascript
判断iframe里的页面是否加载完成
Jun 06 Javascript
firefox浏览器用jquery.uploadify插件上传时报HTTP 302错误
Mar 01 Javascript
JavaScript函数学习总结以及相关的编程习惯指南
Nov 16 Javascript
webpack+vue.js实现组件化详解
Oct 12 Javascript
javascript按钮禁用和启用的效果实例代码
Oct 29 Javascript
Javascript网页抢红包外挂实现分享
Jan 11 Javascript
web前端vue filter 过滤器
Jan 12 Javascript
基于Axios 常用的请求方法别名(详解)
Mar 13 Javascript
Vue组件通信的几种实现方法
Apr 25 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 应用程序安全防范技术研究
2009/09/25 PHP
PHP flush 函数使用注意事项
2016/08/26 PHP
laravel框架使用极光推送消息操作示例
2020/02/15 PHP
php redis setnx分布式锁简单原理解析
2020/10/23 PHP
javascript iframe中打开文件,并检测iframe存在否
2008/12/28 Javascript
jquery.lazyload  实现图片延迟加载jquery插件
2010/02/06 Javascript
setTimeout和setInterval的区别你真的了解吗?
2011/03/31 Javascript
MooBox 基于Mootools的对话框插件
2012/01/20 Javascript
jquery使用ajax实现微信自动回复插件
2014/04/28 Javascript
JavaScript在Android的WebView中parseInt函数转换不正确问题解决方法
2015/04/25 Javascript
JS使用cookie实现DIV提示框只显示一次的方法
2015/11/05 Javascript
JS组件Bootstrap导航条使用方法详解
2016/04/29 Javascript
vue.js 1.x与2.0中js实时监听input值的变化
2017/03/15 Javascript
JS实现线性表的链式表示方法示例【经典数据结构】
2017/04/11 Javascript
jQuery Validate格式验证功能实例代码(包括重名验证)
2017/07/18 jQuery
jQuery实现判断上传图片类型和大小的方法示例
2018/04/11 jQuery
解决vue打包后vendor.js文件过大问题
2019/07/03 Javascript
vue element upload组件 file-list的动态绑定实现
2019/10/11 Javascript
Python collections模块实例讲解
2014/04/07 Python
Python装饰器使用示例及实际应用例子
2015/03/06 Python
python同时给两个收件人发送邮件的方法
2015/04/30 Python
Python读写配置文件的方法
2015/06/03 Python
Django使用httpresponse返回用户头像实例代码
2018/01/26 Python
Python实现接受任意个数参数的函数方法
2018/04/21 Python
python面向对象入门教程之从代码复用开始(一)
2018/12/11 Python
windows下numpy下载与安装图文教程
2019/04/02 Python
python 实现矩阵按对角线打印
2019/11/29 Python
python实现异常信息堆栈输出到日志文件
2019/12/26 Python
Python使用xpath实现图片爬取
2020/09/16 Python
工程质量承诺书范文
2014/03/27 职场文书
正科级干部考察材料
2014/05/29 职场文书
人事部:年度述职报告范文
2019/07/12 职场文书
Pytest中skip skipif跳过用例详解
2021/06/30 Python
配置Kubernetes外网访问集群
2022/03/31 Servers
python模拟浏览器 使用selenium进入好友QQ空间并留言
2022/04/12 Python
Python matplotlib安装以及实现简单曲线的绘制
2022/04/26 Python