JavaScript implements draggable progress bar

JavaScript implements draggable progress bar

This article shares the specific code of JavaScript to implement a draggable progress bar for your reference. The specific content is as follows

1. Progress bar implementation

<html>
<head>
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta charset="UTF-8">
<title>Draggable progress bar</title>
<style>
body{
 margin:50px; ; 
}

.box {
  width:49%;
  hegiht:3rem;
  line-height:3rem;
  float:left;
}
.boxDesc {
  width:50%;
  hegiht:3rem;
  line-height:0.3rem;
  float:left;
}

.scale span{
 background:url(scroll.gif) no-repeat; 
 width:8px;
 height:16px; 
 position:absolute; 
 left:-2px;
 top:-5px;
 cursor:pointer;
}
.scale{ background-repeat: repeat-x; background-position: 0 100%; background-color: #E4E4E4; border-left: 1px #83BBD9 solid; width: 100%; height: 10px; position: relative; font-size: 0px; border-radius: 3px; }
.scale div{ background-repeat: repeat-x; background-color: green; position: absolute; height: 10px; left: 0; bottom: 0; }
li{
 font-size:12px;
 line-height:50px;
 position:relative; 
 height:50px; 
 list-style:none;
}
</style>
</head>
<body>
<ul style='width:100%;margin-top:15rem;'>
 <li>
    <div class = 'box'>
  <div class="scale" id="bar">
   <div></div>
   <span id="btn"></span>
  </div> 
    </div>
  <div class='boxDesc'>
  <span id="title">0</span>
  </div>
 </li>

</ul>
</body>
<script>
scale = function (btn, bar, title) {
 this.btn=document.getElementById(btn);
 this.bar=document.getElementById(bar);
 this.title=document.getElementById(title);
 this.step=this.bar.getElementsByTagName("DIV")[0];
 this.init();
};
scale.prototype={
 init:function (){
  var f=this,g=document,b=window,m=Math;
  f.btn.onmousedown=function (e){
   var x=(e||b.event).clientX;
   var l=this.offsetLeft;
   var max=f.bar.offsetWidth-this.offsetWidth;
   g.onmousemove=function (e){
    var thisX=(e||b.event).clientX;
    var to=m.min(max,m.max(-2,l+(thisX-x)));
    f.btn.style.left=to+'px';
    f.ondrag(m.round(m.max(0,to/max)*100),to);
    b.getSelection ? b.getSelection().removeAllRanges() : g.selection.empty();
   };
   g.onmouseup=new Function('this.οnmοusemοve=null');
  };
 },
 ondrag:function (pos,x){
  this.step.style.width=Math.max(0,x)+'px';
  this.title.innerHTML=pos+'%';
 }
}
new scale('btn','bar','title');
</script>
</html>

2. Achievement Effect

The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM.

You may also be interested in:
  • JS implements dragging the progress bar to change the transparency of elements
  • JavaScript implements horizontal progress bar drag effect
  • js to achieve sliding progress bar effect
  • JS implements circular progress bar drag and slide

<<:  mysql installer community 8.0.12.0 installation graphic tutorial

>>:  Sample code for installing ElasticSearch and Kibana under Docker

Recommend

Docker image access to local elasticsearch port operation

Using the image service deployed by docker stack,...

How familiar are you with pure HTML tags?

The following HTML tags basically include all exis...

The image element img has extra blank space in IE6

When doing DIV+CSS layout of the page, it is very...

Query process and optimization method of (JOIN/ORDER BY) statement in MySQL

The EXPLAIN statement is introduced in MySQL quer...

Solution to index failure caused by MySQL implicit type conversion

Table of contents question Reproduction Implicit ...

Html to achieve dynamic display of color blocks report effect (example code)

Use HTML color blocks to dynamically display data...

How to run .sh files in Linux system

There are two ways to run .sh files in Linux syst...

Use of MySQL trigger

Table of contents 1. Trigger Introduction 1. What...

JS calculates the probability of winning based on the prize weight

Table of contents 1. Example scenario 1.1. Set th...

Collapsed table row element bug

Let's take an example: The code is very simple...

Vue realizes the logistics timeline effect

This article example shares the specific code of ...