Miałem zupełnie inny problem, ale myślę, że wypracowane przeze mnie rozwiązanie może również działać w Twojej sytuacji, ponieważ wspomniałeś, że aktualizacja strony to naprawi.
Miałem więc problemy z Chrome na Androidzie, gdzie jeśli przewijasz bardzo szybko (nierzadko na urządzeniach mobilnych), niektóre elementy nie mogłyby zostać ponownie / pomalowane. Wszędzie szukałem rozwiązania, ale nie mogłem znaleźć niczego, co by działało.
Wreszcie wymyśliłem działającą poprawkę:
.pagewrap {
transform: translateZ(0);
animation-name: 'repaint';
animation-duration: 3s;
animation-iteration-count: infinite;
animation-play-state: running;
animation-timing-function: linear;
}
@keyframes repaint {from { zoom: 99.99999%; } to { zoom: 99.99998%; }}
To powoduje, że strona jest stale odświeżana w 3-sekundowym cyklu.
Może powinienem go dostosować, aby zmieniał się tylko na ułamek sekundy co 2 sekundy, zamiast ciągle:
.pagewrap {
transform: translateZ(0);
animation-name: 'repaint';
animation-duration: 2s;
animation-iteration-count: infinite;
animation-play-state: running;
animation-timing-function: linear;
}
@keyframes repaint {
0% {
zoom: 99.99999%;
}
99% {
zoom: 99.99999%;
}
100% {
zoom: 99.99998%;
}
}
Starałem zoom: 99.99999;
się 1
jednak pewne elementy, które przeniesieni skali powyżej 1 na niektóre efekty unoszą pokaże oddychanie powiększenia. Więc od 99.99999 do 99.99998 działało dla mnie, aby efekt był niewidoczny.
Nieco zręczne rozwiązanie, które może powodować problemy z wydajnością bardzo długich stron, ale może nie, ponieważ przeglądarka powinna wyświetlać tylko to, co jest na ekranie. Strony, z których korzystałem, są ciężkie graficznie i zawierają wiele złożonych efektów wielowarstwowych, co nie wydaje się mieć zauważalnego wpływu na wydajność.
Wygląda na to, że wiele przeglądarek mobilnych ma nadmiernie zoptymalizowane renderowanie, co prowadzi do dziwnych awarii z kilkoma dobrze udokumentowanymi poprawkami. Wymuszanie przemalowania było jedyną działającą poprawką, jaką znalazłem.
Próbowałem innych, nieco mniej agresywnych, udokumentowanych metod wymuszania odmalowania. Jak dodawanie tekstu do strony (niewidocznie) po zatrzymaniu przewijania na 200 ms i tak dalej. Nic jednak nie działało, więc mój animowany hack na całą stronę na zawsze.
W twoim przypadku niektóre z innych hacków mogą działać lepiej. W tym artykule opisano wszystkie różne rzeczy, które powodują odmalowanie / ponowne wycieki, abyś mógł spróbować wykonać niektóre z tych czynności za pomocą skryptu.