单页 cordova 应用程序,仅在 IOS 中尝试滚动时内容不滚动并消失 - 由 ratchet.css 引起

single page cordova app, content not scrolling and disappears when attempting to scroll in IOS only - caused by ratchet.css

我写了一个科尔多瓦单页应用程序。当我 运行 它在我的 android 上时一切正常。当我把它放在 ipad 上时,一切都变得疯狂了。我通过安装插件解决了状态栏的问题,但是,

problem #1

主页加载了一堆图像(框)。如果我不碰任何东西,你可以看到显示屏上的那些。一旦您尝试向上或向下滚动,所有内容都会从视图中消失,但仍然存在。如果你点击屏幕,它会link到正确的内容。当您从内容中 return 时,项目会再次返回,直到您尝试向上或向下滚动。

problem #2

你不能向下滚动 ** 除非一切都消失了,然后你可以滚动但除了白色背景什么都没有 **。您可以看到图像低于页面长度,但根本不允许您滚动。 (请记住,这是一个单页应用程序,因此它是通过 javascript 模板(把手)加载的。松开手指后,砰,一切又消失了。

有什么想法吗?这可能是某种奇怪的 CSS 问题,还是我需要实施 javascript 滚动?同样,android.

一切正常

元标记

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

代码index.html

<script id="home-tpl" type="text/template">
    <header class="bar bar-nav">
        {{#if loggedin}}
            <div class="pull-right logout">Logout</div>
        {{/if}}
        <div class="logo"><img width='74px' src="assets/img/happy_transparent_100.png"></div>
    </header>
    <div class="content"></div>
</script>

<script id="list-tpl" type="text/template">
    <div id="container">
        {{#each cs}}
            <div class="media-body holder">
                <a href="#c/{{id}}">
                    <img class="thumb pull-left emp-pic" src="http://dev.{{thumb}}" />
                </a>
                <div id="picture{{id}}" class="max170">
                    <div class="stars">
                        {{#each stars}}
                            <div class="{{this}}"></div>
                        {{/each}}
                    </div>
                    {{#unless user_voted}}
                    <div class="thumbs">
                        <div data-pic={{id}} class="vote thumb_up">{{up}}</div>
                        <div data-pic={{id}} class="vote thumb_down">{{down}}</div>
                    </div>
                    {{/unless}}
                </div>
            </div>
        {{/each}}
    </div>
</script>

渲染:

HomeView.prototype.template = Handlebars.compile($("#home-tpl").html());
ListView.prototype.template = Handlebars.compile($("#list-tpl").html());
...

...
this.$el.html(this.template(c));
...

风格:

.content {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
overflow: auto;
-webkit-overflow-scrolling: touch;
background-color: #fff;
}

.container {
display: flex;
flex-wrap: wrap;
}

.holder {
float: left;
padding-bottom: 5px;
width: 166px;
flex-grow: 1;
}

.thumb {
margin-bottom: 3px;
flex-grow: 1;
max-width: 200px;
width: 100%;
}

.pull-left{
float:left;
}

.max170 {
max-width: 200px;
}

谢谢

关于 https://github.com/twbs/ratchet/issues/138,这是一个众所周知的问题,但经常被忽视。它实际上是一个简单的修复:

转到 ratchet.css 并围绕第 267 行 (.content{...}) 更改

-webkit-overflow-scrolling: touch;

-webkit-overflow-scrolling: auto;

这似乎已经为我解决了这个问题。

将此行添加到您的 config.xml 文件中:

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