js实现滑动进度条效果

 更新时间:2020年08月21日 14:18:33   作者:#麻辣小龙虾#  
这篇文章主要为大家详细介绍了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>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Bootstrap基本组件学习笔记之input输入框组(9)

    Bootstrap基本组件学习笔记之input输入框组(9)

    这篇文章主要为大家详细介绍了Bootstrap基本组件学习笔记之input输入框组,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • js从10种颜色中随机取色实现每次取出不同的颜色

    js从10种颜色中随机取色实现每次取出不同的颜色

    昨天在做js 从10种颜色中随机取色,并每次取出的颜色不同,具体的实现思路如下,感兴趣的朋友可以参考下
    2013-10-10
  • JS 的应用开发初探(mootools)

    JS 的应用开发初探(mootools)

    昨天在公司内部做了一个小小的技术分享,就 js 应用开发方面跟大家谈了一点自己的心得,最近因为工作关系花在这上面的时间较多也颇有些收获,写在这里备忘。
    2009-12-12
  • 微信小程序 云开发模糊查询实现解析

    微信小程序 云开发模糊查询实现解析

    这篇文章主要介绍了微信小程序 云开发模糊查询实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • 如何实现js拖拽效果及原理解析

    如何实现js拖拽效果及原理解析

    这篇文章主要介绍了如何实现js拖拽效果及原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • 理解javascript中的MVC模式

    理解javascript中的MVC模式

    这篇文章主要为大家介绍了javascript中的MVC模式,MVC是一种软件架构模式,一般把软件模式分为三部分,本文就针对MVC模式的三部分进行讲解,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • setTimeout的延时为0时多个浏览器的区别

    setTimeout的延时为0时多个浏览器的区别

    一直比较迷惑:js的setTimeout到底会在什么时候执行,如果执行了,和主执行脚本到底差多长时间
    2012-05-05
  • 微信小程序实现滑动切换自定义页码的方法分析

    微信小程序实现滑动切换自定义页码的方法分析

    这篇文章主要介绍了微信小程序实现滑动切换自定义页码的方法,结合实例形式分析了微信小程序页码动态切换相关实现技巧与注意事项,需要的朋友可以参考下
    2018-12-12
  • Javascript作用域(局部和全局作用域)详细介绍

    Javascript作用域(局部和全局作用域)详细介绍

    作用域是当前的执行上下文,值和表达式在其中“可见”或可被访问,本文主要介绍了Javascript局部作用域和全局作用域,文中有详细的代码示例,具有一定的参考价值,需要的朋友可以借鉴一下
    2023-06-06
  • 关于javascript解决闭包漏洞的一个问题详解

    关于javascript解决闭包漏洞的一个问题详解

    闭包在JavaScript高级程序设计(第3版)中是这样描述:闭包是指有权访问另一个函数作用域中的变量的函数,下面这篇文章主要给大家介绍了关于javascript解决闭包漏洞的一个问题的相关资料,需要的朋友可以参考下
    2022-11-11

最新评论