Panzoom: Le zoom par pincement ne fonctionne pas sur Android Chrome 55

Créé le 3 janv. 2017  ·  14Commentaires  ·  Source: timmywil/panzoom

Objet du problème

Le zoom par pincement ne fonctionne pas sur Android Chrome 55.

Mise à jour - les pages de démonstration et de test échouent également :
Pinch Zoom ne fonctionne sur un appareil Android avec Chrome 55 sur aucun des éléments de démonstration ici : https://timmywil.github.io/jquery.panzoom/demo/
https://timmywil.github.io/jquery.panzoom/test/ échoue également.

Les deux ci-dessus fonctionnent correctement sur le même appareil avec les mises à jour Chrome désinstallées.

Rapport d'émission d'origine :
Comme #308, j'utilise jquery.panzoom depuis un certain temps et cela fonctionne parfaitement. Chrome 55 l'a cassé sur Android. Dans mon cas, Pan est correct, mais Pinch Zoom provoque un panoramique et un clignotement et aucun zoom.
Si je désinstalle les mises à jour de Chrome, le problème disparaît. Le problème n'est pas évident sur IOS Safari ou sur l'ancien Android Chrome.

Votre environnement

  • version de jquery.panzoom 2.0.5
  • version de jquery 2.1.1
  • Chrome 55 sur Android Lollipop.

Mise à jour - jquery.panzoom 3.2.2 a le même problème, ainsi que d'autres problèmes de confinement. Pinch Zoom ne pose problème que sur Android Chrome 55.

Commentaire le plus utile

Il semble que Chrome 55 déclenche à la fois des événements tactiles et de pointeur. Une solution laide qui fonctionne pour moi consiste à supprimer l'écouteur du pointeur vers le bas. Ainsi la ligne 940 devient :

var str_down;
if (getChromeVersion() >= 55 && 'ontouchstart' in window) {
    str_down = 'mousedown' + ns + ' MSPointerDown' + ns;
}
else {
    str_down = 'mousedown' + ns + ' pointerdown' + ns + ' MSPointerDown' + ns;
}

Voir http://stackoverflow.com/a/4900484/424563 pour getChromeVersion() impl.

Testé avec le dernier jQuery.

Tous les 14 commentaires

Je peux confirmer que le pincement-zoom a également cessé de fonctionner entièrement dans Chrome 55. J'aurais aimé avoir les connaissances en codage pour même tenter un correctif.

J'ai le même problème. Avec 3.2.2 mais cela semble fonctionner sur certains appareils et pas sur d'autres. Par exemple, Samsung sur Android 6.0.1 avec Chrome 55 ne fonctionne pas alors qu'exactement le même appareil Android et Chrome sur Nexus fonctionne parfaitement.

Même problème ici. Vous pouvez vérifier ti en ligne. Choisissez l'une des premières options. Lorsque l'image se charge, pincer pour zoomer ne fonctionne pas sur mobile.

https://yagolopez.github.io/Webcams_de_Asturias/www/#/app/meteo

S'il vous plaît, corrigez-le rapidement.

Correction:

Avec la dernière version de jquery et panzoom, cela semble fonctionner en appliquant ce hack :

https://github.com/timmywil/jquery.panzoom/issues/303#issuecomment-267853623

Je me demande si quelqu'un pourrait m'aider avec mon dilemme : j'utilise la version 2.0.5 depuis deux ans, et cela fonctionne parfaitement sur mon site Web mobile et mon application phonegap. Le seul problème est de pincer pour zoomer dans Android Chrome 55

Je peux obtenir un pincement pour zoomer dans la version 3.2.2 en commentant la ligne notée dans #303. Le problème est que 3.2.2 introduit des problèmes de dimensionnement et de positionnement, et setMatrix() ajoute des traductions apparemment fausses. Il y a plusieurs problèmes ouverts dans ce système, et plusieurs tentatives pour corriger 3.2.2, mais il ne semble pas aussi stable que 2.0.5. (Sauf uniquement le problème Chrome 55.)

J'ai essayé de remplacer event.pageX par event.originalEvent.pageX et event.pageY par event.originalEvent.pageY dans 2.0.5 (comme le suggèrent bodgybrothers dans # 303 pour la version 3.2.2), mais cela ne le résout pas, et je ne suis pas en mesure d'aller plus loin en essayant de faire fonctionner la 2.0.5 avec le zoom par pincement sur Android Chrome 55.

Mon meilleur résultat serait que 2.x soit corrigé, mais je ne sais pas s'il est toujours activement développé. En l'absence d'un correctif pour 2.x, il semble que ma seule option soit d'attendre une nouvelle version de 3.x (4 ?) qui ne présente pas les problèmes de positionnement pour lesquels les gens soumettent des modifications.

Une personne aimable peut-elle ajouter des pensées ou des informations pour aider ma décision?
Acclamations
Jean

J'ai également fait face au problème de positionnement en passant à la version 3.2.2.
Je l'ai trié en ajoutant de la hauteur et de la largeur à mon conteneur de zoom.
Pour moi cela a fonctionné.

position:relative; height:100%; transform:matrix(1, 0, 0, 1, 0, 0); transform-origin: 50% 50% 0;

Il semble que Chrome 55 déclenche à la fois des événements tactiles et de pointeur. Une solution laide qui fonctionne pour moi consiste à supprimer l'écouteur du pointeur vers le bas. Ainsi la ligne 940 devient :

var str_down;
if (getChromeVersion() >= 55 && 'ontouchstart' in window) {
    str_down = 'mousedown' + ns + ' MSPointerDown' + ns;
}
else {
    str_down = 'mousedown' + ns + ' pointerdown' + ns + ' MSPointerDown' + ns;
}

Voir http://stackoverflow.com/a/4900484/424563 pour getChromeVersion() impl.

Testé avec le dernier jQuery.

@dagged : Merci pour cela, mais je trouve que le zoom par pincement sur Chrome 55 fonctionne bien sur Panzoom 3.2.2 avec le correctif dans #303 :
Had a quick hack in the code and commenting out line 1164: this.panning = true;
Mon problème avec Panzoom 3.2.2 est que le positionnement est faussé, ce que dans mon application le correctif suggéré ci-dessus par @pravid ne semble pas résoudre (merci quand même pravid.)

@dagged
dans mon cas, la solution de contournement n ° 303 ne fonctionne pas sur Android 6 samsung Galaxy S6.
votre solution de contournement fonctionne très bien !!! sauve mes jours. Merci!!!

@dagged tu es le sauveur. Merci!!!

@nich008
Le bogue 2.0.5 est window.PointerEvent est vrai.
alors masquez les lignes 32-39, ligne 74 ; ligne 80 var pointerEvents = false;
utiliser l'événement tactile pas de pointeur

@chfeizy
À première vue, cela semble régler le problème. Merci!!!
[modifier] Oui - ça marche bien - merci.

Duplicata du #303

@jcnventura : Ce problème a été soulevé sur Panzoom version 2.0.5 et n'est donc pas strictement une dupe de #303. Notez qu'il y a un commentaire de chfeizy qui résout le problème de la version 2.0.5, ce qui en fait une solution plus fiable que la 3.2.2.

Cette page vous a été utile?
0 / 5 - 0 notes