<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>document</title>
<style>
.kuang {
width: 700px;
height: 7px;
/* background: #c03; */
border: 1px solid #000;
position: relative;
border-radius: 7px;
/* margin-left: 30%; */
/* margin-top: 20%; */
box-sizing: border-box;
/*overflow: hidden;*/
}
.overflow {
overflow: hidden;
width: 700px;
height: 7px;
border-radius: 7px;;
position: absolute;
left: -1px;
top: -1px;
}
.bg {
position: absolute;
background-color: pink;
/* border-radius: 30px; */
width: 700px;
height: 9px;
top: -1px;
left: -100%;
}
.dot {
position: absolute;
display: inline-block;
width: 16px;
height: 16px;
border-radius: 50%;
background: pink;
top: 50%;
left: 0;
transform: translate(-50%,-50%);
}
</style>
</head>
<body>
<div class="kuang">
<div class="overflow">
<div class="bg"></div>
</div>
<a class="dot" draggable="false">
<div class="line"></div>
</a>
</div>
<script type="text/javascript">
window.onload = function() {
var kuang = document.querySelector(".kuang");
var dot = document.querySelector('.dot');
var bg = document.querySelector('.bg');
var load1 = kuang.clientWidth * 0.1666;
var load2 = kuang.clientWidth * 0.3333;
var load3 = kuang.clientWidth * 0.5;
var load4 = kuang.clientWidth * 0.6666;
var load5 = kuang.clientWidth * 0.8333;
var load6 = kuang.clientWidth;
dot.onmousedown = function() {
document.onmousemove = function(e) {
var e = e || window.event;
var x = e.clientX;
var y = e.clientY;
var mx = x - kuang.offsetLeft;
var my = y - kuang.offsetTop;
if(mx < load1) {
dot.style.left = 0;
bg.style.left = -load6 + 'px';
} else if(mx > load1 && mx < load3) {
dot.style.left = load2 + 'px';
bg.style.left = -load4 + 'px';
} else if(mx > load3 && mx < load5) {
dot.style.left = load4 + 'px';
bg.style.left = -load2 + 'px';
} else if(mx > load5) {
dot.style.left = load6 + 'px';
bg.style.left = 0;
}
window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();
}
}
kuang.onclick = function(e) {
var e = e || window.event;
var x = e.clientX;
var y = e.clientY;
var mx = x - kuang.offsetLeft;
var my = y - kuang.offsetTop;
if(mx < load1) {
dot.style.left = 0;
bg.style.left = -load6 + 'px';
} else if(mx > load1 && mx < load3) {
dot.style.left = load2 + 'px';
bg.style.left = -load4 + 'px';
} else if(mx > load3 && mx < load5) {
dot.style.left = load4 + 'px';
bg.style.left = -load2 + 'px';
} else if(mx > load5) {
dot.style.left = load6 + 'px';
bg.style.left = 0;
}
}
document.onmouseup = function() {
document.onmousemove = null;
}
/*移动端try*/
function touchmove(event) {
var touch = event.targetTouches[0];
var mx = touch.pageX - kuang.offsetLeft;
if(event.targetTouches.length == 1) {
event.preventDefault();
if(mx < load1) {
dot.style.left = 0;
bg.style.left = -load6 + 'px';
} else if(mx > load1 && mx < load3) {
dot.style.left = load2 + 'px';
bg.style.left = -load4 + 'px';
} else if(mx > load3 && mx < load5) {
dot.style.left = load4 + 'px';
bg.style.left = -load2 + 'px';
} else if(mx > load5) {
dot.style.left = load6 + 'px';
bg.style.left = 0;
}
}
}
function touchstart(e) {
kuang.addEventListener('touchmove', touchmove, false);
}
dot.addEventListener("touchstart", touchstart, false);
document.addEventListener("touchend", function() {
//dot.removeEventListener("touchstart",touchstart,false);
kuang.removeEventListener("touchmove", touchmove, false);
});
}
</script>
</body>
</html>
其中有注意的问题!!!
window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty(); //实现元素拖动时,出现禁止图标。