1

我有这个用于手持设备的导航栏隐藏脚本:

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 中没有任何这些,但是当将此脚本应用于我的设计的正常、无响应视图时,我也感到性能大幅下降。

4

0 回答 0