我有这个用于手持设备的导航栏隐藏脚本:
function bindNavUp() {
var lastScrollTop = 0, delta = 5;
$(window).on('scroll', function() {
var st = $(this).scrollTop();
if(Math.abs(lastScrollTop - st) <= delta) {
return;
};
if (st > lastScrollTop) {
// downscroll code
$('header.main').css('top','-50px').hover();
}
else {
// upscroll code
$('header.main').css('top','0');
};
lastScrollTop = st;
});
};
function unbindNavUp() {
$(window).unbind('scroll');
};
function handleNavUp() {
if ($(window).width() < 1600) {
bindNavUp();
}
else {
unbindNavUp();
};
};
$(document).ready(function() {
var timer;
$(window).on('load resize scroll', function() {
clearTimeout(timer);
timer = setTimeout(function() {
handleNavUp();
}, 100);
});
handleNavUp();
});
问题在于向上滚动在 Jquery 2.2.1 中效果很好:
https://jsfiddle.net/Lanti/03kw42o1/4/
但不是 Jquery 3 Beta 1,标题的隐藏元素不会回来(我使用最新的 Firefox):
https://jsfiddle.net/Lanti/03kw42o1/5/
此外,使用 Jquery 3 我有很多控制台错误:TypeError: c is null
我在 Jquery 2.2.1 中没有任何这些,但是当将此脚本应用于我的设计的正常、无响应视图时,我也感到性能大幅下降。