Panzoom: Pellizcar el zoom no funciona en Android Chrome 55

Creado en 3 ene. 2017  ·  14Comentarios  ·  Fuente: timmywil/panzoom

Asunto del problema

El zoom de pellizco no funciona en Android Chrome 55.

Actualización: las páginas de prueba y demostración también fallan:
Pinch Zoom no funciona en un dispositivo Android con Chrome 55 en ninguno de los elementos de demostración aquí: https://timmywil.github.io/jquery.panzoom/demo/
https://timmywil.github.io/jquery.panzoom/test/ también falla.

Ambos funcionan bien en el mismo dispositivo con las actualizaciones de Chrome desinstaladas.

Informe de emisión original:
Como # 308, he estado usando jquery.panzoom durante algún tiempo y funciona perfectamente. Chrome 55 lo ha roto en Android. En mi caso, Pan está bien, pero Pinch Zoom hace que paneo y parpadee y no haga zoom.
Si desinstalo las actualizaciones de Chrome, el problema desaparece. El problema no es evidente en IOS Safari o Android Chrome anterior.

Tu entorno

  • versión de jquery.panzoom 2.0.5
  • versión de jquery 2.1.1
  • Chrome 55 en Android Lollipop.

Actualización: jquery.panzoom 3.2.2 tiene el mismo problema, además de otros problemas de contención. Pinch Zoom solo problemático en Android Chrome 55.

Comentario más útil

Parece que Chrome 55 dispara eventos táctiles y de puntero. Una solución desagradable que funciona para mí es eliminar el oyente de puntero. Entonces la línea 940 se convierte en:

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

Consulte http://stackoverflow.com/a/4900484/424563 para getChromeVersion () impl.

Probado con la última versión de jQuery.

Todos 14 comentarios

Puedo confirmar que el zoom de pellizco también ha dejado de funcionar por completo en Chrome 55. Ojalá tuviera el conocimiento de codificación para intentar una solución.

Tengo el mismo problema. Con 3.2.2 pero parece funcionar en algunos dispositivos y no en otros. Por ejemplo, Samsung en Android 6.0.1 con Chrome 55 no funciona, mientras que exactamente el mismo dispositivo Android y Chrome en Nexus funciona perfectamente.

El mismo problema aqui. Puede comprobarlo en línea. Elija una de las primeras opciones. Cuando la imagen se carga, pellizcar para hacer zoom no funciona en el móvil.

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

Por favor, arréglalo pronto.

Corrección:

Con la última versión de jquery y panzoom, parece funcionar aplicando este truco:

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

Me pregunto si alguien podría ayudarme con mi dilema: he estado usando la versión 2.0.5 durante dos años y funciona perfectamente en mi sitio web móvil y en mi aplicación phonegap. El único problema es pellizcar para hacer zoom en Android Chrome 55

Puedo hacer que el pellizco para hacer zoom funcione en la versión 3.2.2 comentando la línea anotada en el # 303. El problema es que 3.2.2 introduce problemas de tamaño y posicionamiento, y setMatrix () agrega traducciones aparentemente falsas. Hay varios problemas abiertos en este sistema y varios intentos de arreglar 3.2.2, pero no parece tan estable como 2.0.5. (Excepto solo el problema de Chrome 55).

Intenté reemplazar event.pageX con event.originalEvent.pageX y event.pageY con event.originalEvent.pageY en 2.0.5 (como sugieren bodgybrothers en # 303 para la versión 3.2.2,) pero no lo soluciona, y no soy competente para ir más lejos tratando de que 2.0.5 funcione con el zoom de pellizco en Android Chrome 55.

Mi mejor resultado sería que 2.x se arregle, pero no sé si todavía se está desarrollando activamente. En ausencia de una solución para 2.x, parece que mi única opción es esperar una nueva versión de 3.x (¿4?) Que carece de los problemas de posicionamiento para los que la gente está enviando cambios.

¿Puede cualquier persona amable agregar algún pensamiento o información para ayudar en mi decisión?
Salud
John

También enfrenté el problema de posicionamiento actualizando a la versión 3.2.2.
Lo clasifiqué agregando alto y ancho a mi contenedor de zoom.
Para mí esto funcionó.

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

Parece que Chrome 55 dispara eventos táctiles y de puntero. Una solución desagradable que funciona para mí es eliminar el oyente de puntero. Entonces la línea 940 se convierte en:

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

Consulte http://stackoverflow.com/a/4900484/424563 para getChromeVersion () impl.

Probado con la última versión de jQuery.

@dagged : Gracias por eso, pero encuentro que el zoom de pellizco en Chrome 55 funciona bien en Panzoom 3.2.2 con la solución en # 303:
Had a quick hack in the code and commenting out line 1164: this.panning = true;
Mi problema con Panzoom 3.2.2 es que el posicionamiento está desordenado, lo que en mi aplicación, la solución anterior sugerida por @pravid no parece solucionarse (gracias de todos modos pravid).

@dagged
en mi caso, la solución # 303 no funciona en Android 6 Samsung Galaxy S6.
su solución funciona muy bien !!! salva mis días. ¡¡¡Gracias!!!

@dagged eres el salvador. ¡¡¡Gracias!!!

@ nich008
El error 2.0.5 es window.PointerEvent es cierto.
así que oculte la línea 32-39, línea 74; línea 80 var pointerEvents = false;
usar evento táctil sin puntero

@chfeizy
A primera vista eso parece arreglarlo. ¡¡¡Gracias!!!
[editar] Sí, está funcionando bien, gracias.

Duplicado de # 303

@jcnventura : Este problema se planteó en la versión 2.0.5 de Panzoom, por lo que no es estrictamente un engaño del # 303. Tenga en cuenta que hay un comentario de chfeizy que soluciona el problema de la versión 2.0.5, lo que la convirtió en una solución más confiable que la 3.2.2.

¿Fue útil esta página
0 / 5 - 0 calificaciones