Phonegap垂直滚动

时间:2013-02-25 21:31:16

标签: cordova

我正在为ios构建一个phonegap应用程序并且有垂直滚动问题。即使没有任何内容,webview中也会出现几个像素滚动,这会影响我绝对定位的导航栏和内置html的标签栏

这是我的html页面 - 没有内容我仍然得到图像中显示的滚动量:

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <meta name="format-detection" content="telephone=no" />
        <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
        <title>My App</title>
    </head>
    <body>

        <script src="scripts/vendor/cordova-2.4.0.js"></script>
    </body>
</html>

scroll screenshot http://img20.imageshack.us/img20/5140/screenshot20130225at212.png

6 个答案:

答案 0 :(得分:11)

html, body {
    margin: 0;
    padding: 0;
    height: 100%;
    overflow: hidden;
}

<meta name="viewport" content="user-scalable=no, initial-scale=1, minimum-scale=1, width=device-width" />

在config.xml中:

<preference name="DisallowOverscroll" value="true" />

以上是我发现在iOS上处理滚动的最佳开端。然后,只需将'overflow:auto'添加到您需要滚动的任何元素。使用推翻或iscroll来帮助支持iOS&lt; 5,android&lt; 3,等等。

答案 1 :(得分:7)

这解决了它(至少在iOS上 - 可能在其他平台上有其他兼容性的东西)

尝试从顶部的元数据中删除width=device-width, height=device-height

据我所知,设备没有考虑顶部状态栏的问题。

答案 2 :(得分:1)

对于最新的答案(截至2016年),此解决方案对我来说是Cordova iOS中最有效的(平滑滚动)。

.element {
  overflow-y: scroll; /* has to be scroll, not auto */
  -webkit-overflow-scrolling: touch;
}

来源: https://css-tricks.com/snippets/css/momentum-scrolling-on-ios-overflow-elements/

答案 3 :(得分:0)

以上都没有解决我的问题,但在链接下面。在我的情况下,在内容之下有一个过大的差距无法解释,这个差距导致了滚动条。

这是链接: https://github.com/phonegap/phonegap/wiki/Prevent-Scrolling

答案 4 :(得分:0)

尝试隐藏系统托盘,它为我做了诀窍。

在MainPage.xaml上,将“IsVisible”设置为false。

shell:SystemTray.IsVisible="False" d:DesignHeight="768" d:DesignWidth="480"

答案 5 :(得分:-2)

这可能会有所帮助:

body {
    height: 100%;
    overflow: hidden;
}