2013-08-02 152 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

相關問題