Weź bardzo podstawową zasadę animacji CSS3 tak:animacje CSS3 klatek kluczowych powolny na wyświetlaczu Retina
.dimension.fadeIn {
-webkit-animation: fadeIn 0.7s;
-webkit-animation-timing-function:ease-in-out;
height:24px;
}
@-webkit-keyframes fadeIn {
0% {
height:0;
opacity: 0;
}
30% {
height:24px; /* the default row (tr) height */
opacity: 0;
}
90% {
opacity: 1;
}
}
w Chrome na każdym wyświetlaczu, oprócz wyświetlacza Retina MacBook, animacja działa gładkie jak jedwab. Kiedy próbujemy tego na siatkówce MBP, animacja działa wyraźnie wolniej i generalnie wydaje się opóźniona.
Mam taki sam przypadek podczas korzystania z Transit (jeśli masz siatkówkę i zewnętrzny wyświetlacz, spróbuj uruchomić dema Transit (lub dowolną animację CSS3?), Porównując dwa ekrany i powinieneś poczuć, że nie jest tak gładki jak chcesz)
Próbowaliśmy użyć GPU ustawiając -webkit-transform: translateZ(0)
, a także kilka innych rzeczy, takich jak -webkit-backface-visibility: hidden
, ale na próżno.
Widocznie wyświetlacz Retina ma większą gęstość pikseli, ale jakie rozwiązania można zastosować, aby rozwiązać ten problem?
IMHO animowanie wysokość zawsze daje spowolnienie. Spróbuj animować inny atrybut. Na przykład, jeśli umieścisz poprawnie '-webkit-perspective', możesz łatwo osiągnąć ten sam efekt za pomocą' translate: rotateY (-90deg) '. To nie tylko siatkówka, gdy masz ~ 1000 elementów i animowaną wysokość, jest to błędne. – drinchev
Nie animuję wysokości ani niczego uważanego za wolniejsze, ale obserwuję dokładnie to samo zachowanie; zarówno w Firefoksie, jak i w chrome. – AlexG
Spróbuj przekształcić animację: zamiast tego skala Y i sprawdź, czy to pomaga. Mam również mnóstwo bóle głowy z całkowicie niedopuszczalną wydajność z tego typu rzeczy. – Reasurria