Порядок свойств имеет значение с jQuery animate? - PullRequest
2 голосов
/ 16 мая 2011

Только сейчас, потратив слишком много времени на отладку, почему мои вызовы jQuery animate() перестали работать правильно, я понял, что моя проблема в том, что свойства в вызове animate() должны быть в определенном порядке.Таким образом, следующее не будет работать должным образом:

$('div.example').animate({left: 50, top: 100, opacity: 1});

То, что произойдет, - div.example исчезнет (если это еще не было) и просто появится в левом положении: 50, сверху: 100, он не будет анимирован.Чтобы это работало должным образом, вам нужно изменить порядок:

$('div.example').animate({opacity: 1, left: 50, top: 100});

Я проверил это в FF4 и Chrome.Это удивило меня, так как я даже не знал, что Javascript гарантирует порядок свойств в объектах, а jQuery не упоминает об этом требовании в своих документах.Так что мой вопрос в основном, я делаю что-то не так?Это ожидается?Есть ли документация по правильному порядку?Будет ли это работать правильно во всех браузерах?

Я также использую jQuery UI.Я знаю, что это улучшает стандартный метод анимации, позволяющий анимировать цвета и тому подобное.Это потенциальная проблема?

Ответы [ 2 ]

1 голос
/ 16 мая 2011

Это ошибка jQuery: не может анимировать положение и непрозрачность одновременно , но исправлена ​​в 1.6. 1

Тем временем вы можете исправить это с помощью:добавив «px» в конце:

$('div.example').animate({top: '100px', left: '50px', opacity: 1});
0 голосов
/ 16 мая 2011

Ваши свойства left и top объявлены ранее в css? В некоторых браузерах (если я правильно помню, есть webkit) возникают проблемы с анимацией свойств, которые не были объявлены. Попробуйте установить left и top в 0 или другие значения и посмотреть, работает ли он.

...