Zakładam, że mam <div>
obszar kontenera wejściowego z tekstem, suwakami i przyciskami i chcę powstrzymać przypadkowe dwukrotne dotknięcie <div>
. Poniższe informacje nie przeszkadzają w powiększaniu obszaru wprowadzania i nie dotyczą dwukrotnego dotknięcia i powiększania poza moim <div>
obszarem. Istnieją różnice w zależności od aplikacji przeglądarki.
Właśnie tego spróbowałem.
(1) W przypadku przeglądarki Safari na iOS i Chrome na Androida i jest to metoda preferowana. Działa z wyjątkiem aplikacji internetowej na Samsunga, w której wyłącza podwójne dotknięcie nie na pełnym <div>
, ale przynajmniej na elementach obsługujących dotknięcia. Zwraca return false
, z wyjątkiem stanu text
i range
danych wejściowych.
$('selector of <div> input area').on('touchend',disabledoubletap);
function disabledoubletap(ev) {
var preventok=$(ev.target).is('input[type=text],input[type=range]');
if(preventok==false) return false;
}
(2) Opcjonalnie dla wbudowanej aplikacji internetowej na Androida (5.1, Samsung), blokuje dwukrotne dotknięcie <div>
, ale blokuje powiększanie <div>
:
$('selector of <div> input area').on('touchstart touchend',disabledoubletap);
(3) W przypadku przeglądarki Chrome w systemie Android 5.1 w ogóle wyłącza podwójne stuknięcie, nie blokuje powiększania i nie powoduje dwukrotnego stuknięcia w innych przeglądarkach. Hamowanie podwójnego dotknięcia <meta name="viewport" ...>
jest irytujące, ponieważ <meta name="viewport" ...>
wydaje się dobrą praktyką.
<meta name="viewport" content="width=device-width, initial-scale=1,
maximum-scale=5, user-scalable=yes">