2017-06-26 71 views
1

在此页面http://eisenpar.com/chocolate/index-free.html我尝试创建一个效果:如果您位于页面顶部并进行滚动,页面会滚动窗口高度并显示固定导航。它可以在Chrome,Opera和Edge中正常运行(我还没有在Safari中进行过测试),但是在Firefox和IE11中,这种效果崩溃了:滚动到底部,然后 - 没有任何停顿。在IE中它显示导航,在FF中它不会,只是将我发送到页面的顶部。Firefox和IE JS滚动问题

这里是我的这种效果脚本:

var scrollBool = false; 

jQuery(window).scroll(function() { 

    var winHeight = window.innerHeight; 
     navHeight = jQuery('nav').outerHeight(); 

    if (scrollBool == false) { 

     scrollBool = true; 

     if(jQuery('nav').hasClass('fixed')) { 

     if (jQuery('body').scrollTop() + 10 < winHeight) { 

      jQuery('nav').removeClass('fixed'); 

      jQuery("html, body").stop().animate({ 
      scrollTop: jQuery('header').offset().top 
      }, 700, function() { 
      scrollBool = false; 
      }); 

     } else { 
      scrollBool = false; 
     } 

     } else { 

     if (jQuery('body').scrollTop() < winHeight) { 

      if(jQuery('nav a, .link-block a').hasClass('in-scroll')) { 

      } else { 
      jQuery("html, body").stop().animate({ 
       scrollTop: jQuery('header').offset().top + winHeight 
      }, 700, function() { 
       scrollBool = false; 
       jQuery('nav').addClass('fixed'); 

      }); 
      } 
     } else { 
      scrollBool = false; 
     } 
     } 
    } 

}); 

回答

0

最后 - 固定。 FF有问题jQuery('body').scrollTop(),它不能正确理解,如果我将其更改为jQuery(window).scrollTop()