Как сбросить анимацию JQuery, чтобы начать все сначала? - PullRequest
8 голосов
/ 21 февраля 2011

Я создал хороший кусок кода, немного анимации и некоторые события нажатия / наведения мыши, довольно небольшой ряд из них.Я собираюсь использовать его для нескольких html-документов (это игра, вы должны получить правильный ответ и перейти к следующему вопросу), собранный вместе в другом html с полностраничным слайдером (я не хочу загружать DOM несколькораз, не имеет смысла): нерешенный вопрос: как сбросить код без фактической его перезагрузки?как сделать так, чтобы очистить все до сих пор и начать все сначала?Я новичок, строю вещи на других фрагментах.Я предполагаю, что это должно быть что-то настолько простое и простое, что никто не ответил на него ... Материал, чтобы оживить все, что было сделано ранее, бесполезен: слишком много материала, переплет и связывание.

Ответы [ 7 ]

21 голосов
/ 24 декабря 2011

У меня была анимация, которая сохраняла позицию каждый раз, когда выполнялся код.Чтобы исправить это, я использовал:

function(){ $('.target').removeAttr('style'); }

, поэтому мой код был что-то вроде:

$('#target').animate({
  opacity: 'toggle',
  top: '+=100',
  }, 1000, function() {
  $('#target').removeAttr('style'); 
});
3 голосов
/ 06 февраля 2014

Для jQuery вы можете использовать .finish (), а перед этим для сброса вам нужно несколько параметров для метода .stop ().

$(element).stop(true, true);

https://api.jquery.com/stop/

0 голосов
/ 10 декабря 2016

Попробуйте .finish().
Пример (попробуйте спамить кнопку):

$('button').on('click', function(event) {
  $("div").finish();
  $("div").fadeOut(1000);
});
0 голосов
/ 16 июня 2011

Я делаю это так: (хотя не уверен, что это совершенно верно)

$(element).stop();
$(element).clearQueue();
$(element).delay(20).animate({ ... });
0 голосов
/ 19 апреля 2011

Спасибо за ответы пациента. Оба правы:

  • в случае одной анимации работает метод stop.

  • в случае нескольких цепочек анимаций - извините, простого способа нет. Перезагрузите, если хотите короткое, но не очень элегантное решение. Чтобы сделать это правильно - изучите javascript для построения логической цепочки функций. Вы не можете долго бегать только с JQuery.

0 голосов
/ 21 февраля 2011

Простого ответа нет, поскольку все зависит от того, что вы сделали, какое состояние необходимо сбросить, какие элементы интерфейса нужно сбросить и так далее.Я предполагаю, что вы должны создать свой собственный метод сброса, который устанавливает все вещи в их начальное состояние или ... вы могли бы пойти простым путем и просто перезагрузить страницу.

0 голосов
/ 21 февраля 2011

$ (element) .stop (), затем повторно запустите анимацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...