如何停止拖动滑块

时间:2013-09-01 19:27:34

标签: javascript slider draggable

我有一个可拖动的滑块,他移动正常,但他在栏的开头和结尾都不正确地停了下来。

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

1 个答案:

答案 0 :(得分:1)

当完全向左滚动时,手柄处于-2px。

您的代码说明if (>=0)

尝试

if (handle.offsetLeft < 0) {
  handle.style.left = (0) + "px";
}