Постепенное появление jQuery () и постепенное исчезновение () не работает с IE 8?

У меня есть страница, которые постепенно появляются и постепенно исчезают, встроенный элемент и jQuery не работают. И затем когда я изменяю Инструменты Разработчика для использования Режима Браузера IE 7, затем постепенное появление () и постепенное исчезновение (), эффект показывает.

5
задан nopole 24 June 2010 в 23:47
поделиться

1 ответ

IE имеет деталь реализации, известную как «hasLayout», которая, к сожалению, часто просачивается за пределы абстракции API, и с ней нужно бороться напрямую ... Это битва, с которой вы столкнулись сегодня: встроенные элементы обычно не имеют " layout »и, следовательно, не будет работать с« фильтрами »... которые jQuery использует для имитации непрозрачности в IE.

Это не новость в IE8, и, как правило, вам не о чем беспокоиться, так как jQuery призван скрыть именно такое безумие, связанное с конкретным браузером ... В самом деле, именно поэтому я ' Я не утруждаюсь вдаваться в подробности того, что на самом деле означают «hasLayout» и «фильтры» - вам, вероятно, все равно, да и не должны (но, если вам интересно, погуглите ...)

Проблема в том, что хак, который jQuery использует под капотом для принудительной компоновки (поэтому фильтры работают (так что он может имитировать непрозрачность (поскольку IE не реализует его))) ... он не работает в IE8. Разве это просто здорово, а? Они исправили ошибку, из-за которой элементы display: inline вели себя как элементы display: inline-block , но не реализовали функцию, которую люди использовали для взлома для поддержки ...

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

$("myInlineElement").css({display: 'inline-block'}).faceOut();

... или еще лучше, поместите его в таблицу стилей только для IE8 ...

6
ответ дан 14 December 2019 в 13:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: