Zapobiegaj migotaniu na webkit-Przejście webkit-transform [duplikat]

Możliwy duplikat:
iphone webkit animacje css powodują migotanie

Z jakiegoś powodu, tuż przed pojawieniem się mojej animacji właściwości WebKit-transform, pojawia się lekkie migotanie. Oto co robię:

CSS:

#element {
    -webkit-transition: -webkit-transform 500ms;
}

JavaScript:

$("#element").css("-webkit-transform", "translateX(" + value + "px)");
Tuż przed przejściem następuje migotanie. Jakiś pomysł, dlaczego tak jest i jak mogę rozwiązać problem? Dzięki!

Update: this występuje tylko w Safari. Nie dzieje się to w Chrome, chociaż animacja działa.

Author: Community, 2010-08-11

8 answers

Rozwiązanie jest wymienione tutaj: iPhone WebKit animacje CSS powodują migotanie.

Dla Twojego elementu, musisz ustawić

-webkit-backface-visibility: hidden;
 263
Author: rpitting,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:18:24

Reguła:

-webkit-backface-visibility: hidden;

Nie będzie działać dla sprite ' ów ani tła obrazów.

body {-webkit-transform:translate3d(0,0,0);}

Wkręca tła, które są wyłożone kafelkami.

Wolę zrobić klasę o nazwie no-flick i zrobić to:

.no-flick{-webkit-transform:translate3d(0,0,0);}
 78
Author: ablemike,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-11 23:55:05

Dodaj tę właściwość css do migotanego elementu:

-webkit-transform-style: preserve-3d;

(i wielkie podziękowania dla Nathana Hoada: http://nathanhoad.net/how-to-stop-css-animation-flicker-in-webkit )

 47
Author: Michael Bar-Sinai,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-28 00:28:45

Musiałem użyć:

-webkit-perspective: 1000;
-webkit-backface-visibility: hidden;    

Na elemencie, lub i tak otrzymałbym flickr przy pierwszym przejściu po załadowaniu strony

 16
Author: Kevin H,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-09 18:50:32

Aby uzyskać bardziej szczegółowe wyjaśnienie, sprawdź ten post:

Http://www.viget.com/inspire/webkit-transform-kill-the-flash/

Zdecydowanie uniknęłabym stosowania go na całe ciało. Kluczem jest upewnienie się, że każdy konkretny element, który planujesz przekształcić w przyszłości, zaczyna się od renderowania w 3d, aby przeglądarki nie musiały przełączać się w trybach renderowania. Dodawanie
-webkit-transform: translateZ(0) 

(lub jedna z opcji już wymienionych) do animowanego elementu będzie / align = "left" /

 14
Author: Dan Tello,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-20 21:32:36

Odkryłem, że zastosowanie {[0] } do elementu translującego i -webkit-transform: translate3d(0,0,0); do wszystkich jego dzieci, migotanie znika

 11
Author: Adam Carter,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-02 22:14:12

Uruchamia renderowanie z akceleracją sprzętową dla problematycznego elementu. Radziłbym nie robić tego na znacznikach *, body lub html dla wydajności.

.problem{
  -webkit-transform:translate3d(0,0,0);
}
 4
Author: dontmentionthebackup,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-12 14:38:48

Obie powyższe odpowiedzi działają dla mnie z podobnym problemem.

Jednak podejście body {- webkit-transform} powoduje, że wszystkie elementy na stronie są efektywnie renderowane w 3D. nie jest to najgorsza rzecz, ale nieznacznie zmienia renderowanie tekstu i innych elementów w stylu CSS.

To może być efekt, który chcesz. Może to być przydatne, jeśli wykonujesz lot przekształcenia na swojej stronie. W przeciwnym razie-webkit-backface-visibility: hidden on the element your transforming jest najmniej inwazyjną opcją.

 1
Author: Eric D. Fields,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-15 14:26:14