Я использую самый замечательный инструмент javascript iScroll4 http://cubiq.org/iscroll-4 на мобильном сайте для iOS и Android. Вот как выглядит мой макет:
Область с горизонтальной прокруткой использует 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 положительным числом независимо от его значения).