Невозможность скрола страницы на мобильной версии протягиванием

При попытке проскролить страницу на мобильной версии, если попал пальцем на карусель. Это создает проблемы, особенно когда карусель занимает больше половины экрана.

Долгие разборы показали, что виноват модуль EasyZoom, который ошибочно запускается на мобильных.

Суть в том, что скрипт запускается по commoninit и определяет “мобильность” по классу у body.


с таймаутом в 220 мс.

Сами классы у body появляются по тому же commoninit


но с таймаутом в 200 мс.

Время от времени, возникает проблема, что easyzoom срабатывает раньше, не находит классов на body и решает что это не мобильный, поэтому запускается.

Во-первых, неправильно устраивать гонку между скриптами.
Во-вторых, если скрипт easyzoom не видит классы, то не нужно решать что это десктоп, нужно просто уйти в таймаут ещё на 200 мс.

4 лайка

Наконец-то вы это нашли и смогли правильно описать, т.к я у вас в теме писал про это ещё пол года назад.

2 лайка

А решить то как?

Я просто топорно поменял таймаут

design\themes\responsive\templates\addons\image_zoom\hooks\index\scripts.post.tpl

        $.ceImageZoom('init', $(elm), positionId);
    }, 800);

Неужели разработчики считают это неважным? В 4.11.3 решили не добавлять.
Выбешивает же, когда фото на весь экран и над ним страница пальцем не прокручивается. Даже реклама в роликах на тытубе так не калит.

Приносим извинения, что упустили данный пост.
Мы сообщили о проблеме разработчикам. Возможно это будет изменено в одной из будущих версий.

Спасибо за обращение. Проблема была исправлена, и исправление будет включено в ближайший релиз.
Вот файл diff, чтобы исправить проблему. Используйте его, как описано в документации.

@stasok, спасибо за обратную связь, проблему дочинили.

Исправление войдет в релиз 4.11.4.
Окончательный патч для самостоятельного решения проблемы такой:

Как его применить, можно почитать в нашей документации.

Перестала появляться лупа на десктопе