Прослушивание событий касания javascript, но все еще разрешающее поведение прокрутки по умолчанию - PullRequest
2 голосов
/ 06 сентября 2010

Я пытаюсь реализовать прокручиваемый элемент для мобильного приложения, и похоже, что вы должны использовать protectDefault при начальном событии touchStart, в противном случае браузер не будет запускать все события touchMove (предположительно по соображениям производительности).1002 * Так что может показаться, что если я хочу разрешить сенсорную прокрутку на переполненном элементе, пользователь не сможет прокручивать страницу, как обычно, при касании этого элемента.Это проблематично, если переполненный элемент занимает большую часть области просмотра.

Обходной путь для этого?

Ответы [ 2 ]

1 голос
/ 28 ноября 2010

Взгляните на эту библиотеку

http://api.mutado.com/mobile/mtdtouch/js/

«Основной» JavaScript включает базовый UIComponent, оптимизированный для сенсорных событий (webkit).Например, компонент UI.Scroll управляет «предотвращением проблемы по умолчанию».

Попробуйте создать подкласс UIComponent и реализовать собственный обработчик событий, например,

$MTD.YourOwnComponent = $.klass( $MTD.UIComponent, {    

    touchesBegan: function( e ) {
        // your stuff
    },

    touchesMoved: function( e ) {
        // your stuff   
    },

    touchesEnded: function( e ) {
        // your stuff
    }

});

Надеюсь, это поможет.

0 голосов
/ 01 августа 2015

Вот простой обходной путь: сбросьте обработчик touchstart . Вы можете реконструировать большую часть того, что происходит, с помощью обработчиков touchmove, touchend и touchleaving.

В браузере, который я тестировал с (Chrome), прокрутка происходит, пока у вас нет обработчика touchstart; это не заботится о других. Пока вы активно не вызываете ev.preventDefault в обработчиках touchmove, прокрутка работает.

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

... А также я предполагаю, что другие браузеры используют ту же логику, что и Chrome.

...