0

我有一个可拖动的滑块,他可以移动,但他在栏的开头和结尾错误地停止了。

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

4

1 回答 1

1

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

你的代码状态if (>=0)

尝试

if (handle.offsetLeft < 0) {
  handle.style.left = (0) + "px";
}
于 2013-09-01T19:36:50.763 回答