Невозможно установить стиль marginTop с помощью скрипта, использующего IE8, но работает в браузерах взрослых людей

Я пытаюсь анимировать выдвижение меню с помощью сценария. Для этого мне нужно оживить свойство marginTop элемента и увеличить его с -30px до 0px .

Однако в IE8 анимация просто ничего не делает. Я проследил это до того факта, что установка marginTop в скрипте, похоже, не имеет никакого эффекта. В Chrome и Firefox это нормально работает.

Вот пример, который будет работать с Chrome / Firefox, но не с IE:

http://jsfiddle.net/rm58T/2/

Это ошибка IE, и если да, есть ли обходные пути за такое поведение? Спасибо!

Обновление:

Вот несколько снимков экрана с ошибкой.

В Chrome мой Fiddle выглядит так (вы можете увидеть текст «Имя нового меню», поскольку мы изменили поле с помощью скрипта)

enter image description here

В IE8 / Vista это выглядит так. Я могу подтвердить в инструментах разработчика, что topMargin на самом деле 0px , как и ожидалось, однако элементы не были перерисованы:

enter image description here

Другое обновление:

Эта ошибка повторяется (по крайней мере для меня) в IE8 под управлением Windows 7, а также IE8 под управлением Windows 2008 Server. Он НЕ воспроизводит меня в IE7, работающем на WinXP. У меня нет компьютеров с IE9 для тестирования.

Еще одно обновление:

Я нашел одно потенциальное решение. Если я установил п.newmenu до position: absolute; вместо position: relative; , тогда он работает. Однако в моем случае я размещаю все это во всплывающем меню и нуждаюсь в этом элементе управления, чтобы вытолкнуть нижнюю часть модального диалогового окна, поэтому его абсолютное позиционирование не является вариантом. Однако, возможно, эти знания помогут найти работоспособное решение. Пример этой работы можно найти здесь .

Поверите ли вы в другое обновление?:

Я нашел обходной путь. Если я использую top: -30px; вместо отрицательного верхнего поля, тогда все работает. Однако top ведет себя немного иначе, чем поле, и пользовательский интерфейс выглядит не так хорошо. В частности, когда вы используете top: -30px , тогда у вас будет 30 пикселей пробела под вашим элементом, поскольку относительное позиционирование не влияет на другой поток страницы.

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

18
задан Mike Christensen 8 December 2011 в 21:33
поделиться