複数のページ (data-role="page") があり、それぞれにコンテンツ div (data-role="content") があります。各ページのコンテンツ div を垂直方向に集中させたいだけです。垂直方向に並べてみましたが、うまくいきませんでした。ブラウザの高さを取得して、トップを割り当ててみました。次のようになります。
home_height = $("#home_page_content").height();
contentTop = (browserHeight - headHeight - home_height)/2;
$("div:jqmData(role='content')").css("position", "relative").css("top", contentTop);
ホームページ以外のページでは動作しませんでした。height() は非表示の要素では機能しないため、コンテンツの高さは常に 0 になります。
次に、次のような他のコンテンツを取得するための css ハッキング方法を試しました。
$("#lounge-content").css({
position: 'absolute',
visibility: 'hidden',
display: 'block'
});
lounge_height = $("#lounge-content").height();
$("#lounge-content").css({
position: 'static', // Again optional if #myDiv is already absolute
visibility: 'visible'
});
loungeTop = (browserHeight - headHeight - lounge_height)/2;
console.log("lounge height is: " + lounge_height + ", lounge top value now is: " + loungeTop);
$("#lounge-content").css("position", "relative").css("top", loungeTop);
問題は、ファイルを開くときに、ヘッダーしか表示されず、コンテンツが非表示になっていることです。すべてを表示するにはブラウザーを更新する必要があります。そしてそれはうまくいきました。
しかし、これは明らかにあまり便利な方法ではありません。おそらく、div を垂直方向に集中化することはそれほど難しいことではないでしょうか? 誰か助けてください。どうもありがとうございました!