Ios MobileSafari:身体上的惯性滚动和最小的UI行为?
这个问题需要解释一下,请耐心听我说 与流行的观点相反,默认情况下,MobileSafari中的网页不会启用惯性滚动(非常平滑的60fps滚动)。由于它在用户体验方面带来了巨大的差异,我在对iOS进行了Modernizer测试后,通过将此CSS动态应用于页面的HTML和BODY元素,实现了这一点:Ios MobileSafari:身体上的惯性滚动和最小的UI行为?,ios,css,mobile-safari,Ios,Css,Mobile Safari,这个问题需要解释一下,请耐心听我说 与流行的观点相反,默认情况下,MobileSafari中的网页不会启用惯性滚动(非常平滑的60fps滚动)。由于它在用户体验方面带来了巨大的差异,我在对iOS进行了Modernizer测试后,通过将此CSS动态应用于页面的HTML和BODY元素,实现了这一点: <style> .touchscroll { overflow: auto; -webkit-overflow-scrolling: touch; position:relative;
<style>
.touchscroll {
overflow: auto;
-webkit-overflow-scrolling: touch;
position:relative;
height:100%;
}
.touchscroll body {
height:100%;
overflow: auto;
-webkit-overflow-scrolling: touch;
position:relative;
}
</style>
touchscroll先生{
溢出:自动;
-webkit溢出滚动:触摸;
位置:相对位置;
身高:100%;
}
.touchscroll实体{
身高:100%;
溢出:自动;
-webkit溢出滚动:触摸;
位置:相对位置;
}
以上基本上使body元素成为一个可滚动的元素,通过-webkit overflow scrolling:touch,可以在整个页面上获得平滑的intertia滚动效果。有关此解决方案的更多背景信息,请参见(免责声明:我自己撰写的文章)
到目前为止,效果很好。问题在于,此解决方案有效地禁用了Mobile Safari的另一个高度期望的行为:通常,向下滚动时,它会使地址栏变小,并完全隐藏浏览器的底部栏。它们在向上滚动时重新出现
不幸的是,由于某些原因,上述技术禁用了此功能。是的,我们有超级平滑的滚动,但浏览器栏总是很大,底部栏始终可见,两者都占用了宝贵的空间
因此,我的问题是,我可否两者兼得?我希望在整个页面上进行超级平滑的滚动,但我也希望在滚动时浏览器元素的默认隐藏行为
下面是我正在使用的一个站点示例:
如果您在Mobile Safari中打开它,您将看到平滑的滚动,而不是向下滚动时隐藏浏览器元素。我认为您正在将
和
元素设置为滚动。您应该将这些CSS规则应用于希望能够滚动的1个元素
因此,要么是
html
要么是body
,不是两者都有。谢谢,但这没什么区别。要在整个页面上平滑滚动,需要在正文级别进行设置。执行此操作后,地址栏始终显示。