2011/09/09

iScrollを設定した要素が非表示の時に、画面を回転させて向きを変えるとうまく動かなくなる

スマートフォン向けサイトでiScrollを使ってるんだけど、iScrollを適用させてる箇所がデフォルトでは非表示になってる。
ボタンをクリックすると、そこが表示されるって感じ。

非表示中は高さをうまく取得できないらしく、非表示のまま画面を横向きにした後、iScroll部分を表示させるとうまく動かない。
iScrollには設定を更新するrefreshというメソッドがあるのでそれを使う

var iSc = new iScroll(wrap);

setTimeout(function(){

  //iScrollの要素を一旦表示にする
  wrap.style.display = "block";
  //iScrollの中身を更新
  iSc.refresh();
  //表示を戻す
  wrap.style.display = "";
}, 0);


これを画面回転時のイベントで呼び出す


ちょっと前に「css切り替えたのに表示がかわらん!」っての書いたんだけど、色々変更しているうちに治ってた…。
原因調べとかないとな…

0 件のコメント:

コメントを投稿