2013-04-02 53 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