jQuery IE8 - проблема Firefox - PullRequest
       18

jQuery IE8 - проблема Firefox

1 голос
/ 02 ноября 2009

У меня большая проблема с IE8, где я использую фреймворк jQuery.

То, что работает в Firefox, не так хорошо работает в IE8. Я даже не проверяю IE7:).

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

Пожалуйста, помогите. Вы можете посмотреть сайт здесь

Ответы [ 4 ]

3 голосов
/ 02 ноября 2009

+ 1 Даниэль: вызвано проблемами, связанными с коллапсом. Свертывание полей достаточно запутанно, даже без проблем с IE, и обычно его лучше избегать. Изменение анимации для использования только отступов и позиционирования сделает ее более надежной.

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

Наконец, присвойте каждому элементу, который имеет position (относительное или абсолютное) явное свойство z-index, чтобы избежать ошибки, при которой IE7 по умолчанию использует их, что приводит к неправильной компоновке, которая делает адрес контакта невидимым.

2 голосов
/ 02 ноября 2009

Я заметил, что код использует свойство marginTop для анимации элементов.

например. Обработчик события нажатия контактной информации:

$("#moveContact").click(function(){ 

Использует свойство marginTop:

marginTop: "167px",

Это ошибка в Internet Explorer и может привести к непредвиденному поведению. См. статью о margin-top для получения дополнительной информации.

Это не проблема с jQuery, это связано с тем, как Internet Explorer интерпретирует значение margin-Top. Я не уверен, является ли это причиной того, что анимация не работает, но было бы неплохо начать искать.

2 голосов
/ 02 ноября 2009

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

Но если щелкнуть контактную ссылку после посещения клиентской области, это не отличается от того, что было в FF.

После быстрого взгляда на источник HTML, я могу только сказать, что вам действительно нужно избавиться от переходного DTD HTML и получить строго DTD HTML. Это исправит большинство проблем, связанных с CSS. Узнайте больше здесь .

0 голосов
/ 02 ноября 2009

Некоторые наблюдения. Во-первых, поведение IE8, описанное вами в «#moveContact», предназначено только для обычного режима. Если вы нажмете «Режим совместимости», значок разорванной страницы справа от поля URL, вы получите другое (и все еще неправильное) поведение.

Во-вторых, способ включения jquery выглядит следующим образом:

http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js

Я бы посоветовал вам предоставить собственную копию jQuery. Вы можете сделать это здесь . Я бы пошел на последнюю 1.3.2. Это может решить вашу проблему. Я замечаю, что в примечаниях к выпуску 1.3 показано, что тестирование на IE7 является последней версией IE.

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