Как я могу запустить функцию, когда что-нибудь анимируется с помощью jQuery? - PullRequest
2 голосов
/ 27 мая 2010

У меня есть несколько анимаций jQuery в моем коде для перемещения div вверх и вниз в ответ на некоторые щелчки мыши и другую логику. Это все работает просто замечательно, однако в IE 6 некоторые из небольших изображений значков на странице не скользят вместе с остальной частью div по какой-то странной причине. Они как бы остаются на месте, а затем переходят в новую позицию, и я связал это с «особенностью» IE6.

Учитывая, что я должен поддерживать IE6, я хотел просто скрывать значки при каждом запуске анимации и показывать их снова, когда очередь пуста.

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

Спасибо, если вы можете помочь-

б

Ответы [ 3 ]

2 голосов
/ 27 мая 2010

Вероятная причина глупости IE6: hasLayout. http://www.satzansatz.de/cssd/onhavinglayout.html

Попробуйте добавить zoom: 1 к CSS изображений.

1 голос
/ 27 мая 2010

Вы можете сделать это с помощью плагина livequery примерно так:

$(':animated').livequery(function() {
  // firing code here
}, function() {
  // anything you want to run when all animation stops
});

Этот тип функциональности является единственной причиной того, что плагин livequery все еще полезен, поскольку в противном случае его функциональность была заменена на live() и delegate()

И так как это происходит только в IE6, было бы глупо скрывать их во всех браузерах, поэтому в функцию запуска вы можете добавить класс с взломом IE6, например .hide4IE6 { _display:none; }, чтобы они оставались показанными в других браузерах.

0 голосов
/ 27 мая 2010

Это делает то же самое в IE7? Расположен ли div или значок относительно друг друга?

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