私は自分のアプリケーション用のすてきなモーダルメッセージウィンドウを作成しましたが、オーバーレイに注入されているコンテナの高さを見つけることができません。HTML要素の高さを取得するjQuery
function load_shipping_message (title, message) {
var left = (($(window).width()/2) - 300) + 'px';
var height = $(document).height();
var overlay = $('<div id="overlay" style="display:none;height:'+height+'px;"></div>').appendTo($('body'));
var atc = $('<div class="atc-container" style="width:600px;"></div>').appendTo($('#overlay'));
var mess = $('<div class="atc-msg"><div class="success">'+title+'</div><p>'+message+'</p><p class="clearfix"><a class="button" style="float:right;"><span>Close</span></p></div>');
atc.html(mess);
var top = (($(window).height()/2) - (atc.height()/2)) + 'px';
atc.css ({
'top': top,
'left': left
});
overlay.fadeIn('slow', function() {
overlay.click (function() {
overlay.fadeOut ('slow', function() {
overlay.remove();
});
});
});
}
上記のatc.height()の値は、コンテンツが含まれていても常に0を返します。
これ以外の機能は、atc.height()が常にゼロであるため、メッセージボックスの上部をビューポートの中間点に設定するだけです。ちょうどそれを適切に中心に置いておきたい場合、ボックスの高さは内容の長さによって明らかに異なります。
おそらくオーバーレイが隠されているためですか?
ありがとうございました。
完璧、ありがとうございます。 –