0

我正在尝试构建一个相当复杂的 HTML5 IOS 应用程序 - 它的布局类似于 Facebook(3 个面板 - 向左或向右滑动以显示设置/通知)。中央面板包含 5 个“页面”,它们只是通过简单脚本隐藏/显示的隐藏 div。

所以作为一个简短的概述,我的布局是 -

 <div class="settings">
    Settings Info....

 </div>
 <div class="mainpage">
    <div id="wrapper">
       <div id="scroller">
          <div class="bookings">
            bookings info 
          </div>
          <div class="clientsList">
            clients info
          </div>          
          <div class="shop">
             shop info
          </div>
          <div class="training">
             training info
          </div>
         </div>
     </div>
 </div>
 <div class="notifications">
    notifications info....

 </div>

我的问题是我需要显示的 div 滚动,因为它们将包含从服务器中提取的动态内容——我尝试使用 IScroll 4 在 5 个显示的 div 周围创建一个滚动条——但是每当我显示它们开始滚动的页面时快速回到顶部 - 我想这是因为它无法计算出 Div 的高度,因为它们隐藏在负载上?

我尝试使用以下脚本在选择页面链接时重置滚动条,因此一旦页面加载它就会计算出高度 - 它可以在浏览器中工作 - 但不能在 IOS 上!非常烦人 - 是否有人对滚动 Div 或页面导航的替代方法有任何想法?

    function updateMyscroll(){
        myScroll.destroy();
        myScroll = null;
        myScroll = new iScroll('wrapper');

        setTimeout(function() {
        myScroll.refresh();
        },0);

}

干杯保罗

4

2 回答 2

1

我在 iScroll 上遇到过类似的问题。这些通常通过严格遵循iScroll 主页提供的信息来解决

首先我建议将结构更新为 UL-LI 格式:

<div id="wrapper">
  <div id="scroller">
    <ul>
      <li class="bookings">bookings info</li>
    .
    .
    .

我还要声明position:relative#wrapper

你用函数做的事情updateMyscroll()对我来说似乎是正确的,除了我也会尝试定位到scroller而不是wrapper.

于 2012-12-04T11:15:22.060 回答
0

我设法通过在页面加载后创建新版本的滚动条来解决我的问题 - 使用以下脚本 - 页面加载略有延迟 - 但在 iphone 3、4、4s 和 5 上的 ios 5+ 上运行良好平板电脑。

var articleScroll
    var articleDefined =""
    function NewScrollArticle() {
        if (articleDefined == "added"){
        blogScroll.destroy();
        alert('added')
       articleScroll = null;
       }
        articleScroll = new iScroll('articleBlog',{checkDOMChanges: false,
                      topOnDOMChanges: false});
        setTimeout(function(){blogDefined ="added"},2000);            

        }
于 2012-12-04T11:50:28.160 回答