所以我使用此代码隐藏我的导航栏向下滚动,并在用户再次向上滚动时显示它。
它适用于桌面设备,所有浏览器,也适用于移动设备上的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/
上使用的网站有人可以告诉我为什么它在Safari上的表现如此,如果有什么我可以做的吗? : - )
谢谢!
答案 0 :(得分:0)
问题是移动浏览器不支持“真实”滚动事件。滚动事件仅在窗口停止滚动后触发。它没有及时反应。
您需要第三方来处理您的滚动,例如Iscroll。