Podczas wypróbowywania przejść CSS stworzyłem małą przewijaną wersję demonstracyjną, która zmienia styl css z pewnej liczby ujemnej na 0, a następnie uruchamia się ponownie po wywołaniu zdarzenia transitionend
, aby uzyskać efekt przewijania w nieskończoność. Oto Fiddle z moim demo - http://jsfiddle.net/XhFdv/Resetowanie przejść css w Internet Explorer 10
Działa w najnowszym FF, Chrome, Safari (wygrana) i Opera. W IE 10 (testowany zarówno na Win 7, jak i Win 8) zdarzenie jest uruchamiane, ale próba ustawienia właściwej właściwości z powrotem na liczbę ujemną zaczyna się nie działać - często pozostaje 0 po ustawieniu (ale nie zawsze).
Aby sprawić, że zabawa będzie bardziej interesująca, wystarczy dodać console.log()
lub alert()
, aby uruchomić ją zgodnie z oczekiwaniami. To sprawia, że myślę, że w warstwie UI jest coś niedokończonego. Próbowałem zawinąć więcej ustawień stylu w setTimeout(..., 0)
, aby renderowanie mogło nadrobić zaległości, ale to nie pomogło.
Czy to błąd w IE 10, czy jest coś, czego mi brakuje w skrypcie demonstracyjnym?
Widziałem te rodzaje błędów przed i oni na pewno ból. Zwykle limit czasu działa, ale chyba nie w tym przypadku. Będę miał jutro czas na skrzypce, więc wrócę do ciebie w tej sprawie; bardzo osobliwe! –
Zwiększono opóźnienie setTimeout do 10-20 ms i to działa dla mnie. –
Złożyłem błąd w firmie Microsoft kilka miesięcy temu. Sądzę, że byli oni w stanie odtworzyć problem i mieć go jako potencjalnego błędu do naprawienia w jednym z następnych głównych wydań. Niestety nie wpadłem na IE 11. – mld