Как определить нижнюю часть вершины наверх в мобильных браузерах в JS? - PullRequest
0 голосов
/ 03 марта 2019

Программисты,

Я занимаюсь разработкой веб-сайта на JS, и я могу определить, когда человек выполняет обычную прокрутку, используя следующий код:

var lastScrollTop = 0;
var $navbar = $('.navbar');
var navbarHeight = $navbar.outerHeight();
var movement = 0;
var lastDirection = 0;

$(window).scroll(function(event) {
        var st = $(this).scrollTop();
        movement += st - lastScrollTop;

        if (st > lastScrollTop) { // scroll down
            if (lastDirection != 1) {
                movement = 0;
            }
            var margin = Math.abs(movement);
            if (margin > navbarHeight) {
                margin = navbarHeight;
            }
            margin = -margin;
            $navbar.css('margin-top', margin + "px")

            lastDirection = 1;
        } else { // scroll up
            if (lastDirection != -1) {
                movement = 0;
            }
            var margin = Math.abs(movement);
            if (margin > navbarHeight) {
                margin = navbarHeight;
            }
            margin = margin - navbarHeight;
            $navbar.css('margin-top', margin + "px")

            lastDirection = -1;
        }

        lastScrollTop = st;
});

Однако у меня есть проблема смобильные браузеры, потому что некоторые из них реализуют свои собственные кнопки, такие как (браузер Яндекса):

img1

В этих случаях мой сайт не отображает навигационную панель,Есть ли у вас какие-либо идеи, как обнаружить нажатие на эту кнопку?Или как узнать, был ли он прокручен таким образом?Спасибо.

...