Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios MobileSafari:身体上的惯性滚动和最小的UI行为?_Ios_Css_Mobile Safari - Fatal编程技术网

Ios MobileSafari:身体上的惯性滚动和最小的UI行为?

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;

这个问题需要解释一下,请耐心听我说

与流行的观点相反,默认情况下,MobileSafari中的网页不会启用惯性滚动(非常平滑的60fps滚动)。由于它在用户体验方面带来了巨大的差异,我在对iOS进行了Modernizer测试后,通过将此CSS动态应用于页面的HTML和BODY元素,实现了这一点:

<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
,不是两者都有。

谢谢,但这没什么区别。要在整个页面上平滑滚动,需要在正文级别进行设置。执行此操作后,地址栏始终显示。