モーダルダイアログを表示するために、jQueryで$.blockUIを使用しています。HTMLは次のようになります。
<div id="progressDialogue" class="mp_modalpopup">
<div class="mp_container">
<div class="mp_header">
<span id="pd_header_text" class="mp_msg">Please wait..</span>
</div>
<div class="mp_body">
<img src="ajax-loader.gif" style="text-align:center" alt="loading" />
</div>
</div>
</div>
CSSは次のようになります。
.mp_modalpopup
{
font-family: arial,helvetica,clean,sans-serif;
font-size: small;
padding: 2px 3px;
bottom: 50%;
right: 50%;
position: absolute;
width: 400px;
z-index:999;
}
.mp_container
{
width: 400px;
border: solid 1px #808080;
border-width: 1px 1px;
left: 50%;
position: relative;
top: 50%;
}
/* removed mp_header, mp_body, mp_msg CSS for brevity */
これにより、ページの中央で他のHTMLの上にスマックバンが表示されます。
ただしdisplay:none
、CSSクラスを設定し、.mp_modalpopup
$。blockUIを使用して表示すると、IE 8ではダイアログは垂直方向に中央揃えになりますが、ダイアログの半分がページの外に左揃えになり、GoogleChromeとFirefoxではダイアログが表示されません。すべて(ただし、ページがグレー表示されるため、blockUIは機能しています)。
これはblockUIjavascriptです:
$.blockUI.defaults.css = {};
$.blockUI({
message: $('#progressDialogue'),
overlayCSS: { backgroundColor: '#000', opacity: 0.1 },
css: {backgroundColor: '#00f', color: '#100'}
});
なぜこうなった?