Свиток hammer.js не работает с событиями пинчин и пинчут

Я использую hammer.js для перехвата событий pinchin и pinchout и изменения размера шрифта страницы. Итак, я написал следующий код:

        var touch_area = document.getElementById('touch-area');
        var hammertime = Hammer(touch_area).on("pinchin pinchout", function (ev) {
            //alert(ev.type);
            if(ev.type=="pinchin")
                decreaseFontSize();
            else
                increaseFontSize();

        });

Работает, но отключает вертикальную прокрутку. Как я могу решить это? Какие-либо предложения?

3 ответа

Ашиш Марадия прекрасно работает для меня, но только на Android.

После многих исследований я смог сделать это в Android и iPhone, используя только этот код:

    var mc = new Hammer.Manager(myElement, {
        touchAction: 'manipulation'
    });
    mc.add([new Hammer.Pinch()]);

    mc.on("pinchin", function (ev) {
        //code
    });
    mc.on("pinchout", function (ev) {
        //code
    });

Применить свойство css к вашему (#touch-area) div

#touch-area{
touch-action: pan-x pan-y !important;
}

Событие hammer.js pinch, pincin, pinchout всегда добавляет сенсорное действие: не работает ни одно свойство, кроме нашего свойства прокрутки

Попробуйте добавить этот CSS:

body {overflow-y:scroll;}

если позже вы захотите включить вертикальную и горизонтальную полосы прокрутки, используйте эту

body{ overflow: scroll; }
Другие вопросы по тегам