2012-12-04 53 views
0

我試圖建立一個相當複雜的HTML5的iOS應用 - 它與Facebook類似的佈局(3個面板 - 向左或向右滑動以顯示設置/通知)。中央面板包含5個'頁面',它們通過簡單的腳本隱藏/顯示隱藏的div。iScroll4 JS - 滾動到頂部的問題

從而簡要介紹我的佈局 -

<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); 

} 

乾杯 保羅

回答

1

我有類似的問題與iScroll。這些通常是嚴格按照在iScroll's homepage

提供起初我建議更新結構,UL-LI格式的信息解決:

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

我還聲明position:relative爲#wrapper指定

的你與功能updateMyscroll()做的事情似乎是正確的我,但我也想嘗試靶向scroller而不是wrapper

+0

歡呼zvona,我想以上 - 但仍然在IOS沒有運氣 - 認爲它是由於網頁被隱藏的負載 - 擺弄有關,並與上述已解決了這個問題,我想出了..歡呼您的幫助 – Dancer

0

我設法通過創建滾動條的新版本一旦頁面加載瞭解決我的問題 - 使用下面的腳本 - 那裏有頁面加載輕微的延遲 - 但在iPhone 3,4 iOS上的偉大工程5+, 4s和5以及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);    

     }