向下滚动隐藏菜单,向上滚动显示,在Chrome中运行,不在Safari(移动设备)中

时间:2015-03-19 18:26:10

标签: javascript jquery html ios css

所以我使用此代码隐藏我的导航栏向下滚动,并在用户再次向上滚动时显示它。

它适用于桌面设备,所有浏览器,也适用于移动设备上的Chrome(iPhone),但在Safari中,slideUp / slideDown很疯狂,有时显示,隐藏,显示会在离开前多次隐藏导航栏。

就像多次触发事件一样。

这是工作代码

   var lastScrollTop = 0, delta = 5;
   $(window).scroll(function(event){
   var st = $(this).scrollTop();

   if(Math.abs(lastScrollTop - st) <= delta)
      return;

   if (st > lastScrollTop){
       // downscroll code
       $("#soulnavbar").slideUp()
   } else {
      // upscroll code
      $("#soulnavbar").slideDown();

   }
   lastScrollTop = st;
});

http://jsfiddle.net/5n630gs2/1/

我在http://www.carbsanity.com/

上使用的网站

有人可以告诉我为什么它在Safari上的表现如此,如果有什么我可以做的吗? : - )

谢谢!

1 个答案:

答案 0 :(得分:0)

问题是移动浏览器不支持“真实”滚动事件。滚动事件仅在窗口停止滚动后触发。它没有及时反应。

您需要第三方来处理您的滚动,例如Iscroll。