Supongo que tengo un <div>
área de contenedor de entrada con texto, controles deslizantes y botones, y quiero inhibir los toques dobles accidentales en eso <div>
. Lo siguiente no inhibe el zoom en el área de entrada y no se relaciona con el doble toque y el zoom fuera de mi <div>
área. Existen variaciones según la aplicación del navegador.
Solo lo probé.
(1) Para Safari en iOS y Chrome en Android, y es el método preferido. Funciona excepto para la aplicación de Internet en Samsung, donde deshabilita los toques dobles no en el total <div>
, sino al menos en los elementos que manejan toques. Vuelve return false
, con excepción de text
y range
entradas.
$('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) Opcionalmente para la aplicación de Internet incorporada en Android (5.1, Samsung), inhibe los toques dobles en <div>
, pero inhibe el zoom en <div>
:
$('selector of <div> input area').on('touchstart touchend',disabledoubletap);
(3) Para Chrome en Android 5.1, deshabilita el doble toque, no inhibe el zoom y no hace nada sobre el doble toque en los otros navegadores. La inhibición del doble toque <meta name="viewport" ...>
es irritante, porque <meta name="viewport" ...>
parece una buena práctica.
<meta name="viewport" content="width=device-width, initial-scale=1,
maximum-scale=5, user-scalable=yes">