iScroll - Тік тік айналдыруды сақтау - Android емес, iOS жұмыс істейді

Мобильді беттегі элементтердің карусельі арқылы жылжу үшін iScroll.js пайдаланамын. Тік тік қозғалысты тыңдап, iScroll сценарийін басқаруды тоқтататын келесі түзетуді тауып алдым: тік тік айналдыруға мүмкіндік беру:

        onBeforeScrollStart: function(e) {
        try {
            point = e.touches[0];
            pointStartX = point.pageX;
            pointStartY = point.pageY;
        } catch(e) {}
        null;
    },
    onBeforeScrollMove: function(e) {
        try {
            deltaX = Math.abs(point.pageX - pointStartX);
            deltaY = Math.abs(point.pageY - pointStartY);
            if (deltaX >= deltaY) {
                e.preventDefault();
            } else {
                null;
            }
        } catch(e) {}
    }

Браузерде тестілеу кезінде кейбір мәселелер болғандықтан (тырнақшасы анықталмаған) шағымданған {} catch {} пайдаланамын.

Мәселе мынада, ол iOS-де жақсы жұмыс істейді, бірнеше i-құрылғыларында сыналған, бірақ Android-де бұл жақсы емес. Пайдаланушы бетті тігінен айналдыруға тырысса, саусақты карусельге қою арқылы бастап, iScroll әлі де басқаруға ие болғандықтан, бет айналдырылмайды.

Android-де жұмыс істеу үшін оны қалай алуға болатынын немесе кез-келген көрсеткішті қайда қате жібере алатындығына қатысты қандай да бір идея.

Өңдеу:

Кейбір жөндеу жұмыстары мен бұл неге жұмыс істемеуі мүмкін екенін анықтадым. Пайдаланушы iOS экранына тиіп тұрғанда, координаттар жаңартылып жатыр, бірақ Android-де координаттардың алғашқы жиынтығы ғана ұсталады. Неліктен бұл туралы кез-келген ой?

7
myScroll.disable() және myScroll.enable() пайдаланып көрдіңіз бе?
қосылды автор Adam Storr, көзі

2 жауаптар

The creator of iScroll actually has a port that seems to work exactly as you describe by paging horizontally and still allowing vertical scrolling. https://github.com/cubiq/2-way-iScroll

0
қосылды

OnBeforeScrollMove үшін сіздің аумағыңызда «нүкте» бар сияқты емессіз. Сондай-ақ, кейбір Android құрылғылары мультитачпен шарлау оқиғаларын шақыруы мүмкін (мұны растай алмаймын, бірақ платформа фрагментациясынан ғана теориялық)

Маған жақсы сценарий бар, ол қысқа уақыттағы оқиғаларды басады және сенсорлықтың идентификаторы қасиеті ретінде «тышқан» арқылы бірегей мультитачтық оқиғаны симуляциялауға көмектеседі. Мен ертең түнде жобаны онлайн режимінде өткізуге тырысамын.

Бұл бірқатар жаңартулар мен жобалармен байланысты, бірақ мына сілтеме:

https://github.com/skhameneh

EDIT: түзету, сіз тіпті «нүкте» жаңартасыз ба? Бұл кодтың сыртына шегініп, ішіне өзгерген сияқты. Кодтың қалған бөлігін жіберген болсаңыз, пайдалы болуы мүмкін.

0
қосылды