js实现滑动进度条

 4900

本文实例为大家分享了js实现滑动进度条效果的具体代码,供大家参考,具体内容如下

5f46239da4607.gif

进度条:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <meta charset="utf-8" />
  5.     <title>js滑动进度条效果</title>
  6.     <style>
  7.         *{margin:0;padding:0;user-select:none;}
  8.         .progress-bar{position:relative;height:10px;width:400px;margin:200px auto;background:#ebeef5;border-radius:10px;}
  9.         .progress-bar .pro-bar{position:absolute;left:0;height:10px;width:10px;background:#409eff;}
  10.         .progress-bar .min-num{position:absolute;left:-20px;top:-5px;}
  11.         .progress-bar .max-num{position:absolute;right:-40px;top:-5px;}
  12.         .progress-bar .block {position:absolute;height:30px;width:10px;background:#ccc;top:-10px;border-radius:10px;}
  13.         .progress-bar .block p{position:absolute;display:none;left:-20px;top:-45px;width:50px;height:30px;text-align:center;line-height:30px;background:#ccc;border-radius:20px;}
  14.         .progress-bar .block:hover p{display:block;font-size:10%;color:#fff;background:#409eff;}
  15.     </style>
  16. </head>
  17. <body>
  18.     <p class="progress-bar">
  19.         <span class="min-num">0</span>
  20.         <span class="max-num">100</span>
  21.         <p class="pro-bar"></p>
  22.         <p class="block">
  23.             <p>0</p>
  24.         </p>
  25.     </p>
  26. </body>
  27. <script>
  28. (function(){
  29.     let moveBlock = document.querySelector('.block');
  30.     let proBar = document.querySelector('.pro-bar');
  31.     let flag = false;
  32.     let startX = null;
  33.     let moveMax = (400 - 10); // 背景条宽度减去滑块的宽度
  34.     moveBlock.onmousedown = function(e){
  35.         startX = e.pageX;
  36.         moveBlock.style.left ? moveBlock.style.left : moveBlock.style.left = '0px';
  37.         let startLeft = parseInt(moveBlock.style.left);
  38.         document.onmousemove = function(e){
  39.             let moveX = (e.pageX - startX) > 0 ? true : false;
  40.             let moveSection = startLeft + (e.pageX - startX);
  41.             // 限定移动范围
  42.             if (moveSection >= 0 && moveSection <= moveMax) {
  43.                 let percent = ((startLeft + (e.pageX - startX)) / moveMax).toFixed(4) * 100;
  44.                 percent.toString().length > 5 ? percent = percent.toString().subStr(0, 5) : percent = percent.toString();
  45.                 moveBlock.style.left = startLeft + (e.pageX - startX) + 'px';
  46.                 proBar.style.width = moveBlock.style.left;
  47.                 moveBlock.querySelector('p').innerText = percent + '%';
  48.             }
  49.         };
  50.     };
  51.     // 鼠标松开移除事件
  52.     moveBlock.onmouseup = function(){
  53.         document.onmousemove = null;
  54.     };
  55. })();
  56. </script>
  57. </html>


TAG标签:
本文网址:https://www.zztuku.com/index.php/detail-7914.html
站长图库 - js实现滑动进度条
申明:如有侵犯,请 联系我们 删除。

评论(0)条

您还没有登录,请 登录 后发表评论!

提示:请勿发布广告垃圾评论,否则封号处理!!

    编辑推荐