2013-08-02 115 views
1

下面是一个场景:我试图使用jquery draggable()实现一个游戏杆,并基于我的游戏杆的y坐标,我将一个div移动到左侧或右侧(如果y为正值,向右移动;否则,如果y值为负值,则向左移动)。我已经完成了这部分,但我的问题是何时停止动画。通过拖动另一个元素来动画元素

示例;

  1. 如果我向上/向下拖动操纵杆并按住,div应该停止移动。它应该只在我释放操纵杆时停止。我怎么能做到这一点?我曾试图加入这个:

    stop: function(){ $(div).stop() } //should stop animation

  2. 以及如何阻止事件的排队?

有什么建议吗?还是有人能指出我出错的地方?谢谢。

我在这里创造一个小提琴:http://jsfiddle.net/j3toxicat3d/cKd8k/2/

回答

3

你需要使用.clearQueue

stop: function(){ $(div).clearQueue() } 

每个拖拽都排队更多的动画,所以他们一个接一个地去。关键字fast速度为200毫秒,所以它累积的时间越长,由于stop只会停止当前动画,因此这个时间会越长。

UPDATE:

http://jsfiddle.net/cKd8k/3/

将部分的阻力之外的东西的功能。

+0

谢谢队友。它确实停止排队。现在问题#1就剩下了。 – Jetoox

+0

更新你的小提琴来照顾这两个问题。链接在我的编辑。 – kalley

+0

这太棒了。非常感谢。 :) – Jetoox

相关问题