jQuery - IE8 - fadeIn () / fadeOut () смещение пикселей - PullRequest
4 голосов
/ 03 июня 2009

Я заменяю один абсолютно позиционированный словарный термин другим так:

jQuery ('# replaceme'). FadeOut (150, function () { JQuery ( '# WithMe') FadeIn (150). });

Это довольно простой код, который отлично смотрится и работает во всех браузерах, кроме IE8. В IE8, пока fadeOut () делает свое дело, весь текстовый блок сдвигается вверх на 2-3 пикселя, а затем обратно на 2-3 пикселя после fadeIn ().

Есть идеи, что может быть причиной этого? Кто-нибудь знает способ предотвратить это?

Кстати: с jQuery 1.3.1 я получаю те же результаты, что и с 1.3.2. Все мои строгие XHTML и CSS проверяются.

1 Ответ

1 голос
/ 03 июня 2009

меняется ли он со встроенного элемента на встроенный блок или блочный элемент?

используя инструменты разработчика ie8, попробуйте изменить свойство display элемента на display:inline-block и посмотрите, возникает ли проблема.

редактировать: ответ на комментарии

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

используйте firebug для определения всех правил css, применяемых к этому элементу, затем попробуйте добавить этот идентификатор элемента, #replaceme, в список селекторов, чтобы гарантировать, что элемент будет стилизован так, как вы ожидаете. например,

dt > dd.def { }

становится

dt > dd.def, #replaceme { }
...