Я предполагаю, что у меня есть <div>
область контейнера ввода с текстом, ползунками и кнопками в ней, и я хочу предотвратить случайное двойное касание в ней <div>
. Следующее не запрещает масштабирование области ввода и не относится к двойному касанию и масштабированию за пределами моего<div>
области. Существуют вариации в зависимости от приложения браузера.
Я только что попробовал.
(1) Для Safari на iOS и Chrome на Android - предпочтительный метод. Работает за исключением интернет-приложения на Samsung, где двойные нажатия отключаются не полностью <div>
, а по крайней мере на элементах, обрабатывающих нажатия. Она возвращает return false
, с исключением на text
и range
входов.
$('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) Дополнительно для встроенного интернет-приложения на Android (5.1, Samsung) запрещает двойное касание <div>
, но запрещает масштабирование <div>
:
$('selector of <div> input area').on('touchstart touchend',disabledoubletap);
(3) Для Chrome на Android 5.1 вообще отключает двойное касание, не запрещает масштабирование и ничего не делает с двойным касанием в других браузерах. Запрет двойного касания <meta name="viewport" ...>
раздражает, потому что <meta name="viewport" ...>
кажется хорошей практикой.
<meta name="viewport" content="width=device-width, initial-scale=1,
maximum-scale=5, user-scalable=yes">