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 に答える