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 が非表示になっているため、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

ページが読み込まれたら、新しいバージョンのスクローラーを作成することで問題を解決できました-次のスクリプトを使用して-ページの読み込みにわずかな遅延があります-しかし、iphone3,4,4sおよび5のios5+でうまく機能しますIpad。

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 に答える