Прокрутка движется в направлении, противоположном направлению касания - PullRequest
0 голосов
/ 24 марта 2020

У меня есть веб-просмотр, который я использую внутри приложения NativeScript. Проблема заключается в том, что, когда происходит пролистывание, которое вызывает прокрутку импульса в любом направлении, если телефон загружен из-за нехватки ресурсов или он просто делает что-то в фоновом режиме, направление прокрутки отскочит в неправильном направлении, чем первоначально было проведено. Код:

<html>
    <body>
        <div style="height: 100000px;"> </div>

        <script src="./lib/jquery-3.4.1.min.js"></script>
        <script src="./my-script.js"></script>
    </body>
</html>


$(document).ready(function () {
    var lastY = 0; // Needed in order to determine direction of scroll.
    var lastTouchDirection;
    var lastScrollTop = 0;

    $("div").on('touchstart', function(event) {
        console.log('touchstart');
        lastY = event.touches[0].clientY;
    });

    $('div').on('touchmove', function(event) {
        console.log('touchmove');
        var top = event.touches[0].clientY;
        var direction = (lastY - top) < 0 ? "up" : "down";
        lastTouchDirection = direction;

        lastY = top;
    });

    $('div').on('touchend', function(event) {
        console.log('touchend');
    });

    $(window).scroll(function(event) {
        var st = $(this).scrollTop();
        if (st > lastScrollTop){
            console.log("downscroll")
            if (lastTouchDirection == "up") {
                console.log("wrong Direction")
            }
        } else {
            console.log("upscroll")
            if (lastTouchDirection == "down") {
                console.log("wrong Direction")
            }
        }
        lastScrollTop = st;
    });
});

Как вы можете видеть, здесь нет ничего уникального, код, который я имею, предназначен для проверки того, каким было последнее направление события касания и в каком направлении движется в данный момент прокрутка. Я предполагаю, что это как-то связано с nativescript и пакетом веб-просмотра, который я использую, поскольку я не вижу, чтобы эта проблема возникала во встроенном веб-просмотре из nativescript.

Следующим моим шагом будет исправление направления прокрутки. программно, когда он обнаруживает, что он движется в неправильном направлении, но я надеялся, что смогу исправить то, что вызывает это, в первую очередь. Что мне здесь не хватает?

Версия NativeScript: 6.1.0 Пакет веб-представления называется nativescript-webview-interface и используется для двусторонней связи между nativescript и веб-представлением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...