Пользовательский интерфейс jQuery взрывает очередь эффектов - PullRequest
1 голос
/ 14 марта 2012

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

Спасибо!

Ответы [ 2 ]

2 голосов
/ 14 марта 2012

Проблема в том, как была разработана функция разнесения.

Он принимает смещение элемента сверху и слева. он измеряет их для вычислений относительно положения, на которое нужно вернуться, расстояния до пути и т. д. Без этих значений невозможно сделать эти определения. Он не был построен достаточно надежно для поддержки динамического расчета; и по праву так.

Я могу доказать эту теорию в трех примерах.

Первый:

Проблема анимации в очереди (как описано)

Во-вторых:

Попытка внедрения с использованием setTimeout возвращает ошибку offset.top () пусто

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

Это подводит меня к последнему примеру. В приведенном ниже примере мы заключаем элемент в элемент div. мы анимируем позицию родительского элемента и взрываем дочерний элемент. давайте посмотрим, как это работает.

Третье:

Как мы видим здесь, проблема заключается в том, как рассчитывается смещение.

Он может получить конец и начало, но не может получить смещение в середине анимации.

Я полагаю, что это проблема, о которой вы тоже говорили, и, к сожалению (по большому счету), вы ничего не можете с этим поделать, кроме как написать ее самостоятельно.

0 голосов
/ 14 марта 2012

Я не знаком с конкретным эффектом разнесения, но я знаю, что jQuery animate() допускает опцию queue (см. http://api.jquery.com/animate/ - есть пример использования этой опции), которая определяет, является липоместить желаемую анимацию в очередь эффектов.Если false, анимация не будет помещена в очередь и начнется немедленно.Это помогает?

...