我有一个可拖动的滑块,他移动正常,但他在栏的开头和结尾都不正确地停了下来。
function drag (handle, event) {
var diffX = event.clientX - handle.offsetLeft;
document.addEventListener('mousemove', startDrag, false);
document.addEventListener('mouseup', stopDrag, false);
// START
function startDrag (e) {
if (handle.offsetLeft >= 0 && handle.offsetLeft <= 280) {
handle.style.left = (e.clientX - diffX) + "px";
}
e.preventDefault();
}
// STOP
function stopDrag() {
document.removeEventListener('mousemove', startDrag, false);
document.removeEventListener('mouseup', stopDrag, false);
}
}
以下是完整代码的链接 - http://jsbin.com/ojEWalu/4/edit。
答案 0 :(得分:1)
当完全向左滚动时,手柄处于-2px。
您的代码说明if (>=0)
。
尝试
if (handle.offsetLeft < 0) {
handle.style.left = (0) + "px";
}