iScroll с нативной прокруткой по одной оси

Я использую самый замечательный инструмент javascript iScroll4 http://cubiq.org/iscroll-4 на мобильном веб-сайте для iOS и Android. Вот как выглядит мой макет:

layout problem

Область с горизонтальной прокруткой использует iScroll4 со следующими настройками:

   var myScroll = new iScroll('frame',  { hScrollbar: false, vScrollbar: false, vScroll: false })

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

Что я пробовал до сих пор: Удаление e.preventDefault() в коде iScroll (позволяет выполнять собственную прокрутку, но по ОБЕИМ осям). Удаление e.preventDefault(), а затем отключение горизонтальной прокрутки страницы по ширине с помощью этого:

var touchMove;

document.ontouchstart = function(e){
    touchMove = e.touches[0];
}

document.ontouchmove = function(e){
    var theTouch = e.touches[0] || e.changedTouches[0];
    var Xer      = rs(touchMove.pageX - theTouch.pageX).toPos();
    var Yer      = rs(touchMove.pageY - theTouch.pageY).toPos();        
    touchMove    = theTouch;
    if(Yer > Xer){ e.preventDefault(); }
}

, что, кажется, ничего не делает. Как разрешить встроенную вертикальную прокрутку в горизонтальной области прокрутки, не теряя горизонтальной прокрутки iScroll? Я действительно в тупике здесь. Заранее спасибо.

(только для записи rs(foo).toPos() — функция, которая делает foo положительным числом независимо от его значения).

13
задан pruett 21 February 2012 в 20:53
поделиться