向下滚动时隐藏菜单,向上滚动时显示,适用于Chrome,不适用于Safari(手机)
Hide Menu on Scroll Down, Show on Scroll Up, Works in Chrome, Not in Safari (mobile)
因此,我使用此代码在向下滚动时隐藏导航栏,并在用户再次向上滚动时显示它。
它在桌面、所有浏览器上都很好,在移动设备(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。
相关文章:
- AddEventListener适用于浏览器,但不适用于Android
- 查找仅适用于原始图像的图像放大算法的名称
- 如何在category.php中执行jquery,这应该适用于类别wordpress中的每个帖子
- Web编程,简单但适用于机器人项目
- JavaScript不适用于internet explorer和Firefox,但适用于谷歌
- Jquery事件处理程序仅适用于匿名函数
- jQuery调整大小函数只适用于窗口
- 火灾在卸载前确认警报仅适用于外部站点
- jQuery 滚动到锚点适用于移动设备,但不适用于桌面
- 适用于移动设备的 Html5 - 滑动滚动
- 我的加载更多功能适用于按钮单击,但它不适用于滚动
- JQuery 页面滚动动画仅适用于镶边
- jQuery If 语句仅适用于平滑滚动
- 平滑滚动仅适用于同一页面,而不适用于外部链接
- 滚动后删除锚链接-也适用于其他页面的链接
- “无限scroll"代码只适用于顶部滚动
- 动画滚动锚只适用于第一个链接
- 如何创建多个可滚动文本实例?它适用于一个例子
- 向下滚动时淡出的标题 - 也适用于向上滚动
- 平滑滚动 JavaScript 适用于所有 A 标签