To jest witryna iPhone: http://www.thevisionairegroup.com/projects/accessorizer/site/
Po kliknięciu „zagraj teraz” przejdziesz do gry. Pistolety przewiną się. Możesz przewijać torebkę i akcesoria w górę iw dół. Możesz zobaczyć, że kiedy puścisz, zatrzaskują się na miejscu. Tak jak to się dzieje, pojawia się migotanie. Jedyne animacje webkitów, których używam, to:
'-webkit-transition': 'none'
'-webkit-transition': 'all 0.2s ease-out'
'-webkit-transform': 'translate(XXpx, XXpx)'
Wybieram pierwsze lub drugie przejście w zależności od tego, czy chcę, aby było animowane, a transformacja to jedyny sposób, w jaki poruszam się po nim.
Największym problemem jest jednak to, że klikniesz „Dopasuj elementy”, a następnie klikniesz „Odtwórz ponownie”. Zobaczysz, jak ożywają się pistolety, całe tło akcesoriów / toreb staje się białe. Czy ktoś może mnie promieniować jakimś wglądem, dlaczego tak się dzieje?
Spróbuj tego i miejmy nadzieję, że pomoże:
#game { -webkit-backface-visibility: hidden; }
źródło
body {-webkit-transform:translate3d(0,0,0);}
źródło
#wrapper
element, ponieważ nałożenie na korpus zepsułoby układ.-webkit-backface-visibility: hidden;
spowodowało rozmycie wszelkich zmian skali.body {-webkit-transform:translate3d(0,0,0);}
zadziałało.scale(1)
spowodowało migotanie. wielkie dziękiWłaściwa odpowiedź na mój przypadek jest tutaj. Ktoś był blisko z: -webkit-backface-visibility: ukryty; Ale prawdziwa odpowiedź brzmi: -webkit-backface-visibility: hidden; należy dodać do nadrzędnego div.
źródło
-webkit-backface-visibility: hidden;
do nadrzędnego elementu DIV, animowanego DIV ORAZ elementów podrzędnych animowanego DIV. Kiedy to zrobiłem, działało bezbłędnie.Miałem również problem z "migoczącym" przejściem CSS. Animacja, o której mowa, była menu wysuwającym się z ekranu, a po zakończeniu animacji całe menu migotało / migotało.
Jak się okazało, było to spowodowane faktyczną funkcją iOS, "podświetleniem dotknięcia" , które z jakiegoś powodu włączyło się po zakończeniu animacji CSS (tj. Daleko po faktycznym dotknięciu) i podświetliło całe menu zamiast tylko elementu który został nagrany. „Rozwiązałem” problem, całkowicie wyłączając podświetlanie dotknięciem, jak opisano tutaj :
-webkit-tap-highlight-color: rgba(0,0,0,0);
źródło
Odpowiedź Michaela
-webkit-backface-visibility: hidden;
zadziałała, kiedy napotkaliśmy ten problem. MieliśmytranslateZ(0px)
na naszym<body>
tagu, aby zapobiecIFRAME
błędowi granic w iOS 3.1.3 i wcześniejszych, który powodował migotanie animacji. Dodanie-webkit-backface-visibility: hidden;
do każdego animowanego elementu naprawiło migotanie! Oszczędza życie.źródło
div { -webkit-tap-highlight-color: rgba(255, 255, 255, 0); }
Zauważyłem, że po najechaniu na element div strona będzie migotać, nawet jeśli nie mam dołączonego do niej żadnego css ani js. może to pomoże komuś innemu.
źródło
Jeśli ktoś stwierdzi, że widoczność od tyłu nie działa, możesz spojrzeć na właściwości już w animowanym elemencie. W naszym przypadku odkryliśmy, że
overflow-y: scroll
elementabsolute
lubfixed
umieszczony element powodował duże migotanie w systemie iOS.Po prostu usunięcie
overflow-y: scroll
go naprawiło.źródło
overflow-y: scroll
pomogło w mojej sprawie. Dziękuję bardzo!Mimo że miałem
-webkit-transform-style: preserve-3d;
i-webkit-backface-visibility: hidden
migotanie wciąż się działo.W moim przypadku przyczyną był
z-index
. Zwiększenie go na aktywnym elemencie pomogło.źródło
Oto nowe rozwiązanie. Ustawiałem obraz tła za pomocą jQuery i żadna ze sztuczek renderowania 3D nie działała. Dlatego zamiast tego spróbowałem użyć klas do zdefiniowania właściwości. Voilà! Gładka jak masło.
Powoduje to migotanie:
$('#banner').css('backgroundImage', 'url("slide_1.jpg")';
Zamiast tego zrób:
$('#banner').attr('class', '.slide-1');
ze zdefiniowanymi klasami:
#banner { -webkit-transition: background-image .25s; } .slide-1 { background-image: url("slide_1.jpg"); } .slide-2 { background-image: url("slide_2.jpg"); }
źródło
Wypróbuj to rozwiązanie . U mnie działa w Phonegap + jQM 1.4.0 :
Zmień to
<meta name="viewport" content="width=device-width, initial-scale=1">
Zamiast tego:
<meta name="viewport" content="width=device-width, user-scalable=no" />
Przeczytaj więcej tutaj: http://www.fishycode.com/post/40863390300/fixing-jquery-mobiles-none-transition-flicker-in
źródło
Spędziłem dużo czasu, próbując rozwiązać ten problem dla Ember Animated Outlets, Phonegap i konfiguracji iOS .
Choć było to proste, musiałem dodać tło do każdego elementu nadrzędnego najwyższego poziomu, który był zawarty w animacjach CSS. Innymi słowy, upewnij się, że w żadnym punkcie Twoich widoków nie ma elementu, który nie ma tła.
Moja konfiguracja była taka dla każdego szablonu i wszystkie trzy elementy miały przypisany kolor tła:
<header></header> <body class="content"></body> <footer></footer>
źródło
Zamiast stosować przejście do „wszystkich”, po prostu określ to, czego naprawdę potrzebujesz. Usunęło migotanie na mojej obudowie.
źródło
Wypróbowałem wszystkie powyższe i nadal miałem poważne problemy z migotaniem w przeglądarkach Firefox i Chrome. Naprawiłem to lub przynajmniej znacznie zredukowałem do akceptowalnego problemu, usuwając transformację box-shadow, która powodowała wiele przemalowań podczas animacji. Postępowałem zgodnie z tym i zmodyfikowałem dla swoich potrzeb:
http://tobiasahlin.com/blog/how-to-animate-box-shadow/
źródło
dla mnie problem migotania na safari rozwiązany przez usunięcie
will-change: transform;
animowanego elementu.też mógłbym rozwiązać ten problem dodając
overflow: hidden;
do rodzica, ale z tym wszystkie elementytransform: translateZ()
stały się nieskuteczneźródło
Musiałem użyć rzeczywistej wartości (zamiast 0):
.no-flick{ -webkit-backface-visibility: hidden; backface-visibility: hidden; -webkit-transform:translateZ(0.1px); transform: translateZ(0.1px); /* needs an actual value */ }
Przykład:
<div class="foo no-flick"></div>
Z tego, co przeczytałem , migotanie jest spowodowane przełączaniem przeglądarki między renderowaniem sprzętowym a programowym. I myślę, że producenci przeglądarek są świadomi tak dawnego „translate3d (0,0,0)”, aby wymusić renderowanie sprzętowe - więc mogą teraz ignorować te fałszywe wartości.
=> Użycie rzeczywistej wartości może spowodować, że coś się „przyklei”.
W każdym razie pracował dla mnie.
źródło
Wystąpiło migotanie podczas wykonywania przejścia slajdów podczas korzystania z domyślnej przeglądarki internetowej systemu Android.
Użyłem następującego css przejścia:
-webkit-transition: all 2s; -webkit-transform: translate(100%,0);
Żadne z obejść wymienionych w tym wątku nie pomogło w rozwiązaniu problemu. Wreszcie znalazłem rozwiązanie. Źródłem migotania jest słowo kluczowe all, które oznacza wykonanie wszystkich możliwych przejść. Zmieniłem to tak, aby wykonywał tylko transformację i problem został rozwiązany:
-webkit-transition: -webkit-transform 2s; -webkit-transform: translate(100%,0);
źródło
Rozwiązaniem tego problemu było opóźnienie przypisania reguły CSS transform-translate. Coś takiego:
HTML:
<div class="animate-this loading"></div>
CSS:
.animate-this { &:not(.loading) { transform: -webkit-translate(50px); transform: translate(50px); transition: -webkit-transform 0.3s, transform 0.3s; } }
JavaScript (jQuery):
$(document).ready(function(){ window.setTimeout(function(){ $('.animate-this').removeClass('loading'); }, 250); });
… Ponieważ nic dla mnie
-webkit-backface-visibility: hidden;
nie zrobił .źródło
Więc znalazłem rozwiązanie tego problemu, w którym żadna inna nie działała poprawnie.
CSS:
.ios-animation-fixer { position: fixed; width: 100%; height: 10px; top: -10px; background-color: green; z-index: 1; pointer-events: none; visibility: hidden; }
HTML:
<div class="ios-animation-fixer"></div>
Następnie ustaw
z-index
animowany element na> 1. To w jakiś sposób nakłania urządzenia z systemem iOS do renderowania animacji w inny sposób i pozwala uniknąć migotania w moim scenariuszu. Dostosowanie wartości indeksu z może być pomocne, jeśli to rozwiązanie nie działa poza bramką.źródło
UPDATE 2019
Możesz włączyć migotanie, po prostu dodając te reguły do elementu, w którym jest używane przejście.
-webkit-transform: translate3d(0, 0, 0);
Pracował dla mnie na Safarai
źródło