2013-09-01 158 views
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

回答

1

當完全向左滾動時,句柄位於-2px。您的代碼狀態爲。

嘗試

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

我編輯您的jsbin http://jsbin.com/IzexoWI/1/edit – andrew