2011-10-15 9 views
8

可能であれば、どのようにiscroll div内に動的コンテンツをロードし、それに新しい高さを割り当てるのか説明してください。divを動的にロードするときにiscrollを動作させる

私はそれを動作させることができますが、私は新しいコンテンツのスクロールの高さを制御することはできません。

私はこれまでに新しく、始める手がかりがありませんでした。ここ

は、私が働いているものです:

http://homepage.mac.com/jjco/test/index7.html

をページがロードされたときあなたは何のコンテンツがありません、スクロールバーを参照してください...プリント/ダム上 クリックすると(高さ元々Iを示していますこのコンテンツのために設定されています) 印刷/ fcbarcelonaをクリックすると(これまで使用していたスクロールの高さと位置が維持されます)、動作していないことがわかります。 明らかに、私はそれが必要でないときにスクロールをそこに置いて欲しくない。

ご協力いただければ幸いです。

答えて

3

は、あなたがこれらの手順

//myScroll is a global variable you initialize iScroll on 
myScroll.destroy(); 
myScroll = null; 
loaded();//this is a functions where you have have your iScroll initializer 
+0

これはありがとう、私のために働いてくれました。 – JasonMHirst

+0

*破壊することを意味する( –

14

を行うことが、高さを再計算しますiScrollでリフレッシュ()メソッドを、使用することをお勧めしますiScrollに新しいデータを挿入すると、これを試してみてください。

myScroll.refresh(); 
3

私は同様の問題を抱えていた、とだけrefresh()は助けにはならなかったので、iScrollを破壊し、再作成助けにはなりませんでした。私の場合は、iScroll divに多くの要素をロードしていました。問題を解決したのはsetTimeout()です。 MASTERING THE REFRESH() METHODは、0mssetTimeout()に加えても、多くの問題を解決すると述べている。私の場合、それは500msでした。 =ここ

は、コードサンプルです:

var myScroll; 

    function createIScroll(){ 
    myScroll = new iScroll('wrapper'); 
    } 

    function iScrollRefresh(){ 
     setTimeout(function(){ 
     myScroll.refresh(); 
     }, 500); 
    } 
$ajax(){ 
//receiving data 
} 
function someFunction(){ 
    //dynamic content is created 
    iScrollRefresh(); 
} 

私の問題は、コンテンツがそのようにタイムアウトが助け増加し、DOMに挿入した前refresh()機能が実行されたということでした。私は私のような初心者に役立つことを願っています。高さを見て

+0

)私にとってはリフレッシュだけではうまくいかなかったが、setTimeoutは問題を解決しました。 – Yasmine

0

の変更:

setInterval(function() { 
    var newScrollerHeight = $scroller.innerHeight(); 

    if (newScrollerHeight !== prevScrollerHeight) { 
     prevScrollerHeight = newScrollerHeight; 
     myScroll.refresh(); 
    } 
}, 500); 
-1

がiscroll.jsでiScroll4
を見て、私は実験的なオプションを参照してください。checkDOMChanges:偽、//実験は
あなたはそれを有効にして使用することができます。