152 votes

Désactiver l'option "zoom" double tap dans le navigateur sur les appareils tactiles

Je veux désactiver la fonctionnalité de zoom double tap sur les éléments spécifiés dans le navigateur (sur les appareils tactiles), sans désactiver toutes les fonctionnalités de zoom.

Par exemple : un élément peut être tapé plusieurs fois pour que quelque chose se produise. Cela fonctionne très bien sur les navigateurs de bureau (comme prévu), mais sur les navigateurs d'appareils tactiles, il va zoomer.

64voto

Kablam Points 973
<head>
<title>Site</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> 
etc...
</head>

Je l'ai utilisé très récemment et il fonctionne très bien sur iPad. Je n'ai pas testé sur Android ou d'autres appareils (parce que le site Web sera affiché sur iPad uniquement).

32voto

Jan Points 66

CSS pour désactiver le zoom double-tap globalement (sur n'importe quel élément) :

  * {
      touch-action: manipulation;
  }

manipulation

Activez le panoramique et les gestes de zoom pincés, mais désactivez les gestes non standard supplémentaires tels que le double-tap pour zoomer.

Merci Ross, ma réponse prolonge son : https://stackoverflow.com/a/53236027/9986657

29voto

Wouter Konecny Points 722

Je voulais juste répondre correctement à ma question car certaines personnes ne lisent pas les commentaires ci-dessous. Donc le voici :

(function($) {
  $.fn.nodoubletapzoom = function() {
      $(this).bind('touchstart', function preventZoom(e) {
        var t2 = e.timeStamp
          , t1 = $(this).data('lastTouch') || t2
          , dt = t2 - t1
          , fingers = e.originalEvent.touches.length;
        $(this).data('lastTouch', t2);
        if (!dt || dt > 500 || fingers > 1) return; // not double-tap

        e.preventDefault(); // double tap - prevent the zoom
        // also synthesize click events we just swallowed up
        $(this).trigger('click').trigger('click');
      });
  };
})(jQuery);

Je n'ai pas écrit ça, je l'ai juste modifié. J'ai trouvé la version iOS uniquement ici : https://gist.github.com/2047491 (merci Kablam)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X