Ich gehe davon aus, dass ich einen <div>
Eingabecontainerbereich mit Text, Schiebereglern und Schaltflächen habe und versehentliche Doppelklicks verhindern möchte <div>
. Das Folgende verhindert nicht das Zoomen des Eingabebereichs und bezieht sich nicht auf das Doppeltippen und Zoomen außerhalb meines <div>
Bereichs. Je nach Browser-App gibt es Variationen.
Ich habe es gerade versucht.
(1) Für Safari unter iOS und Chrome unter Android ist dies die bevorzugte Methode. Funktioniert mit Ausnahme der Internet-App unter Samsung, bei der Double-Taps nicht vollständig deaktiviert werden <div>
, sondern zumindest bei Elementen, die Taps verarbeiten. Es return false
wird mit Ausnahme von text
und range
Eingaben zurückgegeben.
$('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) Optional für die integrierte Internet-App unter Android (5.1, Samsung), verhindert das zweimalige Tippen auf das <div>
, verhindert jedoch das Zoomen auf <div>
:
$('selector of <div> input area').on('touchstart touchend',disabledoubletap);
(3) Deaktiviert für Chrome unter Android 5.1 das Doppeltippen, deaktiviert das Zoomen nicht und bewirkt nichts über das Doppeltippen in den anderen Browsern. Das Double-Tap-Inhibieren des <meta name="viewport" ...>
ist irritierend, weil <meta name="viewport" ...>
es eine gute Praxis zu sein scheint.
<meta name="viewport" content="width=device-width, initial-scale=1,
maximum-scale=5, user-scalable=yes">