Mam a webpage using WebGL on a fullscreen canvas.Jak zatrzymać wyłączanie iOS Chrome przy dotykaniu płótna?
mam ten css zatrzymać wybór za
*, *:before, *:after {
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
I mam ten kod, aby zatrzymać menu kontekstowego
gl.canvas.addEventListener('contextmenu', function(e) {
e.preventDefault();
return false;
});
Ale kiedy dotknąć ekranu w Chrome iOS to przygasa. Oto gif problemu, w którym po raz pierwszy pokazano Chrome iOS, a następnie Safari iOS.
A oto wersja YouTube
Uwaga: Zignoruj zacinać graficznej. Moje przechwytywanie zrzutów ekranu zostało pomieszane z jakiegoś powodu.
Zauważ, że w chromie tło miga czasami na szaro. Kiedy w Safari jest ciągle biały. To szaro w chromie, próbuję przestać.
To naprawdę denerwujące, ponieważ po prostu stukanie w ekran kończy się skutecznym miganiem ekranu i jest naprawdę rozpraszające.
Aktualizacja
Zacząłem więc próbuje zaczynając od zera i dodanie części w. Wygląda na to, że nie jest związana z Płótno jest to związane z aukcji na click
wydarzeń.
Jeśli mam
gl.canvas.addEventListener('click', function() {});
mi uzyskać ściemnianie. Jeśli usunę to, czego nie zrobię. Nieruchomość dla touchstart
wydarzeń nie powoduje ściemnianie
Aktualizacja 2
Więc to na pewno nie niezwiązanego z płótna.Jeśli usunąć płótna i po prostu użyć div ale jestem sprawdzanie click
uzyskać przyciemnianie
Te ustawienia CSS nie pomogło
* {
-webkit-tap-highlight-color: rgba(0,0,0,0);
pointer-events: none;
}
To działało
elem.addEventListener('touchstart', function(e) {
e.preventDefault();
});
jestem nie wiem, czy istnieje jakieś inne konsekwencje dla preventDefault
na touchstart
Dzięki ale żadna z nich pracował. Znalazłem przynajmniej jedną pracę wokół. – gman
To było dla mnie rozwiązanie. Ważne jest, aby pamiętać, że należy to zastosować do kontenera za pomocą zdarzenia click/touch, niekoniecznie