1

我正在为 iPad 应用程序开发 html+css。

为了说明这个问题,我做了一个简单的假人:

<head>

    <meta charset="UTF-8" />

    <style>
        body {
            height:100%;
            width:100%;
            padding:0px;
            margin:0px;
            background:#333;    
        }
        #container {
            width:90%;
            margin:0 auto;
            background:#ccc;
            padding:10px;   
        }
        #footer {
            position:fixed;
            bottom:0px;
            height:100px;
            width:100%;
            background:red;
            text-align:center;  
        }
    </style>

</head>

<body>

    <div id="container">Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>Test<br/>                                                        
</div>
    <div id="footer">

    </div>        
</body>

尝试使用 iPad / Safari 手机,您会注意到第一次滚动页脚(红色块)。它会向上滚动,直到您停止滚动。在您第二次尝试时,一切正常。

当您重新加载页面时,一切都会再次发生。

我认为这是对固定位置的支持是错误的。

任何想法如何解决这个问题?也许使用 jQuery。

4

3 回答 3

0

jQuery Mobile Fixed Footer Scrolls with Text One Time Then Stops in iOS App是否遇到了同样的问题?如果是这样,那么这个小技巧似乎解决了这个问题。

于 2012-12-10T22:36:31.873 回答
0

我正在从事的项目也有同样的问题。而不是使用:

#footer {
      position:fixed;
      bottom:0px;
      height:100px;
      width:100%;
      background:red;
      text-align:center;  
} 

我使用了以下代码,它确实对我有用

#footer {
      position:absolute;
      bottom:0px;
      height:100px;
      width:100%;
      background:red;
      text-align:center;  
}
于 2013-01-07T10:13:07.783 回答
0

上面的 Jimbo 发现了问题并引导我找到了答案。

它以 100 毫秒的延迟工作。

这是对我有用的最终解决方案。

function fixJqmScrollBug() {
    window.scrollTo(0, 1);
    setTimeout(function() {
        window.scrollTo(0, 0);
    }, 100);
}
$(document).ready(function() {
    fixJqmScrollBug();
}); 
于 2013-01-21T08:24:08.273 回答