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中的对象化编程
Jan 16 Javascript
利用javascript移动div层-javascript 拖动层
Mar 22 Javascript
javascript sudoku 数独智力游戏生成代码
Mar 27 Javascript
jquery photoFrame 图片边框美化显示插件
Jun 28 Javascript
点弹代码 点击页面任何位置都可以弹出页面效果代码
Sep 17 Javascript
javaScript 计算两个日期的天数相差(示例代码)
Dec 27 Javascript
jQuery中:submit选择器用法实例
Jan 03 Javascript
IE7浏览器窗口大小改变事件执行多次bug及IE6/IE7/IE8下resize问题
Aug 21 Javascript
移动端web滚动分页的实现方法
May 05 Javascript
详解vue-cli+es6引入es5写的js(两种方法)
Apr 19 Javascript
react基本安装与测试示例
Apr 27 Javascript
一篇文章学会Vue中间件管道
Jun 20 Vue.js
探索浏览器页面关闭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
Mysql的常用命令
2006/10/09 PHP
php shell超强免杀、减少体积工具实现代码
2012/10/16 PHP
php实现的简单美国商品税计算函数
2015/07/13 PHP
使用Appcan客户端自动更新PHP版本号(全)
2015/07/31 PHP
PHP使用SWOOLE扩展实现定时同步 MySQL 数据
2017/04/09 PHP
php-msf源码详解
2017/12/25 PHP
浅谈laravel数据库查询返回的数据形式
2019/10/21 PHP
jquery 简单图片导航插件jquery.imgNav.js
2010/03/17 Javascript
JS在TextArea光标位置插入文字并实现移动光标到文字末尾
2013/06/21 Javascript
javascript实现给定半径求出圆的面积
2015/06/26 Javascript
JavaScript String 对象常用方法总结
2016/04/28 Javascript
jQuery AJAX timeout 超时问题详解
2016/06/21 Javascript
Web打印解决方案之普通报表打印功能
2016/08/29 Javascript
JS组件系列之使用HTML标签的data属性初始化JS组件
2016/09/14 Javascript
不使用script导入js文件的几种方法
2016/10/27 Javascript
js实现无缝滚动图
2017/02/22 Javascript
微信小程序商城项目之侧栏分类效果(1)
2017/04/17 Javascript
ES6新特性五:Set与Map的数据结构实例分析
2017/04/21 Javascript
vue上传图片组件编写代码
2017/07/26 Javascript
JavaScript运行原理分析
2018/02/09 Javascript
JS实现头条新闻的经典轮播图效果示例
2019/01/30 Javascript
JavaScript实现放大镜效果代码示例
2020/04/29 Javascript
关于element的表单组件整理笔记
2021/02/05 Javascript
[00:59]DOTA2荣耀之路1:Doom is back!weapon X!
2018/05/22 DOTA
[01:13:46]iG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
在Python中使用cookielib和urllib2配合PyQuery抓取网页信息
2015/04/25 Python
python简单区块链模拟详解
2019/07/03 Python
Python zip函数打包元素实例解析
2019/12/11 Python
Python字典中的值为列表或字典的构造实例
2019/12/16 Python
浅谈CSS3特性查询(Feature Query: @supports)功能简介
2017/07/31 HTML / CSS
html5声频audio和视频video等新特性详细说明
2012/12/26 HTML / CSS
Linux中如何设置Java环境变量(Ubuntu)
2016/07/24 面试题
办公室文秘自我评价
2013/09/21 职场文书
党员个人对照检查材料范文
2014/09/24 职场文书
单位婚育证明范本
2014/11/21 职场文书
2022漫威和DC电影上映作品
2022/04/05 欧美动漫