Próbuję animować wysuwanie menu za pomocą skryptu. Aby to zrobić, muszę animować właściwość marginTop
elementu i zwiększać ją z -30px
do 0px
.Nie można ustawić stylu marginTop ze skryptem przy użyciu IE8, ale działa w przeglądarkach dla dorosłych ludzi.
Jednak w IE8 animacja po prostu nie robi nic. Zauważyłem, że ustawienie w skrypcie marginTop
wydaje się nie mieć żadnego efektu. W Chrome i Firefox działa to dobrze.
Oto przykład, który będzie współpracować z Chrome/Firefox, ale nie IE:
Czy to jest bug IE, a jeśli tak, to czy są jakieś obejścia tego problemu? Dzięki!
Aktualizacja:
Oto kilka zrzutów ekranu z błędem.
W Chrome, mój Fiddle wygląda następująco (można zobaczyć „Nazwa nowego menu” tekstu, ponieważ zmieniliśmy margines ze skryptu)
w IE8/Vista, to wygląda to. Mogę potwierdzić w narzędziach dla programistów, które topMargin
jest rzeczywiście 0px
zgodnie z oczekiwaniami, jednak elementy nie były ponownie rysowane:
Kolejna aktualizacja:
repros tego błędu (przynajmniej dla mnie) na IE8 działającym na Windows 7, a także IE8 działającym na Windows 2008 Server. To nie repro dla mnie na IE7 uruchomiony na WinXP. Nie mam żadnych maszyn IE9, żeby to przetestować.
Yet Another Aktualizacja:
znalazłem jeden potencjalny obejście. Jeśli ustawię p.newmenu
na position: absolute;
zamiast position: relative;
, to działa. Jednak w moim przypadku hostuję tę całą rzecz w wyskakującym menu i potrzebuję tej kontroli, aby wypchnąć dno modalnego okna dialogowego, więc absolutne umieszczenie go nie jest opcją. Być może jednak ta wiedza może pomóc w znalezieniu praktycznego rozwiązania. Przykład tej pracy można znaleźć here.
Uwierzysz Kolejna aktualizacja ?:
I zrobił znaleźć obejście do teraz. Jeśli użyję wartości top: -30px;
zamiast ujemnego marginesu górnego, wszystko będzie działać. top
zachowuje się nieco inaczej niż margines i sprawia, że interfejs użytkownika nie wygląda tak ładnie. W szczególności, gdy używasz top: -30px
, będziesz mieć 30 piksli spacji pod twoim elementem, ponieważ pozycjonowanie względne nie ma wpływu na przepływ innych stron.
Bardzo chciałbym dowiedzieć się, dlaczego nie mogę wykorzystać ujemnego górnego marginesu na IE, tak jak ja w innych przeglądarkach, więc wciąż mam nadzieję, że ktoś może udzielić odpowiedzi, która zapewni wszystkie korzyści ujemny górny margines, ale także działa z IE8.
+1 za sam tytuł –
Dzięki :) Zaczynam przyjmować fakt, że moja strona prawdopodobnie będzie wyglądać jak osioł w IE. –
W zależności od tego, kto jest oczekiwaną publicznością, to może nadal działać –