因此,我使用此代码在向下滚动时隐藏导航栏,并在用户再次向上滚动时立即显示它。
它适用于台式机,所有浏览器,也适用于移动设备(iPhone)上的Chrome浏览器,但在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上表现得如此,是否有什么我可以做的? :-)
谢谢!
最佳答案
问题是移动浏览器不支持“真实”滚动事件。滚动事件仅在窗口停止滚动后才触发。它没有及时反应。
您需要第三方来处理滚动,例如Iscroll。
关于javascript - 在“向下滚动”上显示“隐藏菜单”,在“向上滚动”上显示“显示”,可在Chrome浏览器中工作,而不在Safari中(移动设备),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29152279/