2013-08-02 4 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/

Moving некоторые функции внешнего перетаскивания материала.

+0

спасибо помощнику. он останавливает очередь. теперь проблема №1 - это все, что осталось. – Jetoox

+0

Обновлена ​​ваша скрипка, чтобы позаботиться обо всех проблемах. Ссылка в моем редактировании. – kalley

+0

это потрясающе. Большое спасибо человеку. :) – Jetoox