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 相关文章推荐
ext中store.load跟store.reload的区别示例介绍
Jun 17 Javascript
js对字符的验证方法汇总
Feb 04 Javascript
浏览器环境下JavaScript脚本加载与执行探析之defer与async特性
Jan 14 Javascript
适用于javascript开发者的Processing.js入门教程
Feb 24 Javascript
window.open打开窗口被拦截的快速解决方法
Aug 04 Javascript
JavaScript结合HTML DOM实现联动菜单
Apr 05 Javascript
Vue编写多地区选择组件
Aug 21 Javascript
Vue组件创建和传值的方法
Aug 17 Javascript
详解mpvue开发微信小程序基础知识
Sep 23 Javascript
javascript实现异形滚动轮播
Nov 28 Javascript
JS实现网站楼层导航效果代码实例
Jun 16 Javascript
原生JS实现九宫格抽奖
Sep 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操作xml代码
2010/06/17 PHP
php实现微信公众号无限群发
2015/10/11 PHP
Ajax一统天下之Dojo整合篇
2007/03/24 Javascript
JavaScript高级程序设计(第3版)学习笔记8 js函数(中)
2012/10/11 Javascript
javascript里模拟sleep(两种实现方式)
2013/01/25 Javascript
一个简单的瀑布流效果(主体形式自写)
2013/05/27 Javascript
js中点击空白区域时文本框与隐藏层的显示与影藏问题
2013/08/26 Javascript
JavaScript将取代AppleScript?
2014/09/18 Javascript
jQuery实现判断滚动条到底部
2015/06/23 Javascript
详解maxlength属性在textarea里奇怪的表现
2015/12/27 Javascript
深入解析JavaScript中函数的Currying柯里化
2016/03/19 Javascript
详解自动生成博客目录案例
2016/12/09 Javascript
js仿新浪微博消息发布功能
2017/02/17 Javascript
[03:07]完美世界DOTA2联赛PWL DAY10 决赛集锦
2020/11/11 DOTA
Python与人工神经网络:使用神经网络识别手写图像介绍
2017/12/19 Python
python变量赋值方法(可变与不可变)
2019/01/12 Python
Python中正则表达式的用法总结
2019/02/22 Python
解决python3中的requests解析中文页面出现乱码问题
2019/04/19 Python
解决Django 在ForeignKey中出现 non-nullable field错误的问题
2019/08/06 Python
使用Python 自动生成 Word 文档的教程
2020/02/13 Python
Python3和PyCharm安装与环境配置【图文教程】
2020/02/14 Python
基于Numba提高python运行效率过程解析
2020/03/02 Python
CSS3实现简易版的刮刮乐效果
2016/09/27 HTML / CSS
俄罗斯优惠券网站:BIGLION
2017/05/21 全球购物
墨尔本复古时尚品牌:Dangerfield
2018/12/12 全球购物
园林资料员岗位职责
2013/12/30 职场文书
诚实守信演讲稿
2014/09/01 职场文书
群众路线教育党员自我剖析材料
2014/10/06 职场文书
市贸粮局召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
2014年民主评议党员工作总结
2014/12/02 职场文书
餐饮店长岗位职责
2015/04/14 职场文书
学习社交礼仪心得体会
2016/01/22 职场文书
导游词之新疆-喀纳斯
2019/10/10 职场文书
sql server 累计求和实现代码
2022/02/28 SQL Server
云服务器部署 Web 项目的实现步骤
2022/06/28 Servers
源码安装apache脚本部署过程详解
2022/09/23 Servers