Масштабирование пальцем не работает в Android Chrome 55.
Обновление - демонстрационная и тестовая страницы также терпят неудачу:
Pinch Zoom не работает на устройстве Android с Chrome 55 ни на одном из демонстрационных элементов здесь: https://timmywil.github.io/jquery.panzoom/demo/
https://timmywil.github.io/jquery.panzoom/test/ также не работает.
Оба приведенных выше кода отлично работают на одном устройстве с удаленными обновлениями Chrome.
Исходный отчет о проблеме:
Как и # 308, я уже некоторое время использую jquery.panzoom, и он работает безупречно. Chrome 55 сломал его на Android. В моем случае «Панорама» - это нормально, но «Масштабирование пальцем» вызывает панорамирование и мигание, а не масштабирование.
Если я удалю обновления для Chrome, проблема исчезнет. Проблема не очевидна в iOS Safari или более ранней версии Android Chrome.
Обновление - jquery.panzoom 3.2.2 имеет ту же проблему, а также другие проблемы с локализацией. Масштабирование пальцем проблематично только на Android Chrome 55.
Я могу подтвердить, что масштабирование пальцем полностью перестало работать и в Chrome 55. Мне жаль, что у меня не было знаний в области программирования, чтобы даже попытаться исправить.
У меня точно такая же проблема. С 3.2.2, но, похоже, он работает на некоторых устройствах, но не на других. Например, Samsung на Android 6.0.1 с Chrome 55 не работает, в то время как точно такие же Android и Chrome на устройстве Nexus работают отлично.
Здесь та же проблема. Вы можете проверить это онлайн. Выберите один из первых вариантов. Когда изображение загружается, ущипнуть для увеличения не работает в мобильном телефоне.
https://yagolopez.github.io/Webcams_de_Asturias/www/#/app/meteo
Пожалуйста, исправьте это как можно скорее.
Исправление:
С последней версией jquery и panzoom, похоже, работает этот хакерский прием:
https://github.com/timmywil/jquery.panzoom/issues/303#issuecomment -267853623
Интересно, может ли кто-нибудь помочь мне с моей дилеммой: я использую версию 2.0.5 в течение двух лет, и она отлично работает на моем мобильном веб-сайте и в приложении для телефонных разговоров. Единственная проблема - ущипнуть, чтобы увеличить Android Chrome 55
Я могу увеличить масштаб, работая в версии 3.2.2, закомментировав строку, отмеченную в №303. Проблема в том, что 3.2.2 вводит проблемы с размером и позиционированием, а setMatrix () добавляет явно ложные переводы. В этой системе есть несколько открытых проблем и несколько попыток исправить 3.2.2, но она не кажется такой стабильной, как 2.0.5. (За исключением проблемы Chrome 55).
Я попытался заменить event.pageX на event.originalEvent.pageX и event.pageY на event.originalEvent.pageY в 2.0.5 (как предлагают bodgybrothers в # 303 для версии 3.2.2), но это не исправляет, и я не в состоянии идти дальше, пытаясь заставить 2.0.5 работать с масштабированием пальцев на Android Chrome 55.
Моим лучшим результатом было бы исправление 2.x, но я не знаю, активно ли он развивается. В отсутствие исправления для 2.x, похоже, мой единственный вариант - дождаться новой версии 3.x (4?), В которой отсутствуют проблемы позиционирования, для которых люди отправляют изменения.
Может ли любой добрый человек добавить какие-либо мысли или информацию, чтобы помочь моему решению?
Ваше здоровье
Джон
Еще я столкнулся с проблемой позиционирования при обновлении до версии 3.2.2.
Я отсортировал его, добавив высоту и ширину к моему контейнеру масштабирования.
Для меня это сработало.
position:relative;
height:100%;
transform:matrix(1, 0, 0, 1, 0, 0);
transform-origin: 50% 50% 0;
Кажется, Chrome 55 запускает события касания и указателя. Одно уродливое исправление, которое сработало для меня, - это удаление слушателя указателя вниз. Итак, строка 940 становится:
var str_down;
if (getChromeVersion() >= 55 && 'ontouchstart' in window) {
str_down = 'mousedown' + ns + ' MSPointerDown' + ns;
}
else {
str_down = 'mousedown' + ns + ' pointerdown' + ns + ' MSPointerDown' + ns;
}
См http://stackoverflow.com/a/4900484/424563 для getChromeVersion () осущ.
Протестировано с использованием последней версии jQuery.
@dagged : Спасибо за это, но я обнаружил, что масштабирование пальцем в Chrome 55 отлично работает в Panzoom 3.2.2 с исправлением в # 303:
Had a quick hack in the code and commenting out line 1164:
this.panning = true;
Моя проблема с Panzoom 3.2.2 заключается в том, что позиционирование запутано, что в моем приложении исправление, предложенное выше, предложенное @pravid , похоже, не исправляет (все равно спасибо, pravid.)
@dagged
В моем случае обходной путь # 303 не работает на android 6 samsung Galaxy S6.
ваш обходной путь отлично работает !!! спаси мои дни. Спасибо!!!
@dagged ты спаситель. Спасибо!!!
@ nich008
Ошибка 2.0.5 - window.PointerEvent истинно.
так что скройте строку 32-39, строку 74; строка 80 var pointerEvents = false;
использовать событие касания без указателя
@chfeizy
На первый взгляд это, кажется, исправляет. Спасибо!!!
[править] Да, все работает хорошо - спасибо.
Дубликат № 303
@jcnventura : Эта проблема возникла в Panzoom версии 2.0.5, так что это не просто обман # 303. Обратите внимание, что есть комментарий от chfeizy, который устраняет проблему для версии 2.0.5, что делает ее более надежным решением, чем 3.2.2.
Самый полезный комментарий
Кажется, Chrome 55 запускает события касания и указателя. Одно уродливое исправление, которое сработало для меня, - это удаление слушателя указателя вниз. Итак, строка 940 становится:
См http://stackoverflow.com/a/4900484/424563 для getChromeVersion () осущ.
Протестировано с использованием последней версии jQuery.