2013-04-02 116 views
0

我有一個滑動,即時通過使用鼠標移動嘗試滑動,​​但它不會自然移動它跳躍在舞臺上,但我不知道爲什麼。滑動div不平穩移動

我在這裏有一個jsfiddle: http://jsfiddle.net/97Mnf/3/您將看到滑塊不能正確移動鼠標。

我的代碼是:

window.onload = function(){ 
    document.getElementById('cursor').addEventListener("mousedown", mousePos, false); 
} 

function mousePos(e){ 
    var x = e.pageX; 
    document.getElementById('cursor').addEventListener("mousemove", function(e){mousemoveCalc(e,x);}, false); 
    document.getElementById('cursor').removeEventListener("mouseup", mousemoveCalc, false); //not working 
    document.getElementById('cursor').removeEventListener("mouseout", mousemoveCalc, false); //not working 
} 

function mousemoveCalc(e,x){  
    var difx = 0 + parseInt(x + e.pageX); 

      if(difx > 270){ 
       difx=270; 
      }else if(difx<0){ 
       difx=0; 
      } 

    document.getElementById('cursor').style.left = difx+'px'; 

} 
+1

你從來沒有真正設置任何'mouseup'或'mouseout'事件,所以你期望如何去除它們的工作? –

+0

哦,我的壞。解決了第一部分。滑塊在小提琴中的移動情況如何? – Sir

+0

您正在通過每次執行'mousePos'來添加多個事件偵聽器 –

回答

1

嘗試var difx = e.pageX-x;而不是x+e.pageX。此外,您可能希望將您的mousemove事件附加到文檔本身,因此您不需要拖動鼠標時將鼠標放在滑塊上。最後,你的邏輯全都是錯的。你需要添加一個事件偵聽器,當它被觸發時,刪除所有的處理程序。

+0

確定那是工作:)修正了事件和數學!謝謝! – Sir