前一篇是PC端的进度条,在移动端滑动没有效果
下面是移动端进度条的源码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>移动端进度条</title>
<style>
#box {
width: 1200px;
height: 100px;
position: absolute;
color: #ffffff;
background-color: #3F3E3E;
}
#bar {
width: 1200px;
height: 10px;
border-radius: 10px;
background: #ffffff;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
cursor: pointer;
}
#bar_after{
width: 0px;
height: 10px;
border-radius: 10px;
background: #1DCB93;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 320px;
margin: auto;
cursor: pointer;
}
#dot{
width: 15px;
height: 15px;
background: #1DCB93;
position: absolute;
bottom: 0;
top: 0;
margin: auto 0;
border-radius: 50%;
cursor: pointer;
}
#text{
font-size: 20px;
}
</style>
</head>
<body onselectstart="return false">
<div id="box" >
<div id="bar">
<div id="dot"></div>
</div>
<div id="bar_after"></div>
<span id="text">0%</span>
</div>
<script src="http://code.jquery.com/jquery-3.4.0.min.js"></script>
<script>
var bar_width=bar.offsetWidth;
$("#bar,#bar_after").on("touchstart", function(e) {
e.preventDefault();
});
$("#bar,#bar_after").on("touchmove", function(e) {
e.preventDefault();
moveEndX = e.originalEvent.changedTouches[0].pageX;
if(moveEndX<0){
moveEndX= 0;
}
if(moveEndX>=bar_width-dot.offsetWidth){
moveEndX=bar_width-dot.offsetWidth;
}
bar_after.style.width=moveEndX+5+'px';
bar_after.style.right=(bar_width-moveEndX)+'px';
dot.style.left = moveEndX + 'px';
var bili=parseInt(moveEndX/ (bar_width-dot.offsetWidth) * 100);
$('#text').text(bili+'%');
});
$("#bar,#bar_after").on('touchend', function(e) {
e.preventDefault();
moveEndX = e.originalEvent.changedTouches[0].pageX;
bar_after.style.width=moveEndX+5+'px';
bar_after.style.right=(bar_width-moveEndX)+'px';
dot.style.left = moveEndX + 'px';
var bili=parseInt(moveEndX/ (bar_width-dot.offsetWidth) * 100);
$('#text').text(bili+'%');
});
</script>
</body>
</html>