base64でエンコードされた画像とその下にテキストを表示する小さなアプリを作成しました。スクロールには iScroll を使用し、画面テンプレートには Handlebars.js を使用します。
私の問題は、iScroll.refresh() メソッドが呼び出されるのが早すぎて、正しい寸法が計算されないことがあることです。
app.dataInterface.getContents(self.gameid, self.state, function(contents){
self.currentContents = contents;
for (i=0; i<contents.length; i++) {
$(IngameView.cimgtemplate(contents[i])).hide().appendTo(".content").fadeIn();
}
self.setScroll();
});
ハンドルバー テンプレート:
<script id="content-img-tpl" type="text/x-handlebars-template">
<div class="contents content_img" id="{{content_id}}">
<img class="image" src="{{src}}"/>
{{txt}}
</div>
</script>
ハンドルバーが同期して動作するかどうかはよくわかりませんが、画像データが小さいときに動作するため、画像の読み込み (デコード) が遅すぎることが問題である可能性があると思います。
Handlebars.js テンプレートを DOM にアタッチする前にプリロードする方法や、Handlebars-helpers が実行されて画像が読み込まれた後に何らかのコールバックを更新する方法はありますか?
前もって感謝します ;)