资深程序员
我已经用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;
});
但是,我对移动浏览器存在挑战,因为其中一些实现了自己的按钮(Yandex浏览器):
在这些情况下,我的网站没有显示导航栏。您是否知道如何检测该按钮的单击?或如何知道它是否以这种方式向后滚动?谢谢。