LINUX.ORG.RU

Как правильно сделать изменение scale страницы с помощью pinch-а?

 ,


0

2

Очень давно мучаюсь с вопросом.
Нужно сделать zoom страницы(изменяя initial-scale страницы) с помощью pinch-а в мобильных браузерах.
Евент pinch я успешно отловил и врубил preventDefault(), initial-scale в теге meta изменил.
Если код упросить до сути то получается:

el.addEventListener('touchmove', function (e) {
 e.preventDefault();
//всякие вычисления и проверки
document.getElementById('viewport').setAttribute('content', 'width=device-width, user-scalable=no, maximum-scale=1, initial-scale=' + zoom);
})

Код отрабатывает как надо, с помощью пинча меняется маштаб страницы и всё хорошо.
Но в safari в ipad при уменьшении initial-scale остается в области видимости только часть страницы и чтобы увидеть остальную часть страницы нужно её «скролить». Такая же проблема и в других браузерах(FF, Chrome), но проявляется она через раз.
Обгуглил весь гугл и всё без толку.
Пытался эмулировать двойной tap по body - не помогает.

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.