Я пытаюсь сделать модальный диалог jquery.(пожалуйста, не говорите «использовать плагин»).
Я хорошо знаю, что js, который я использую, это дерьмо, когда я пытаюсь взломать базовую функциональность, как только я отключил базовую функциональность, яперепишу это как плагин jquery для моего собственного использования.
В любом случае,
У меня появилось диалоговое окно, и оно находится в центре страницы, Размер диалогового окна определяется его содержимым.
В этом конкретном примере содержимое имеет фиксированную ширину.
Я пытаюсь обработать случай, когда содержимое больше ширины страницы.
Я получаюстранная проблема, когда при изменении размера страницы содержимое буквально просто обрезается, полос прокрутки нет.
В чем может быть моя проблема?
Пример: http://jsbin.com/egowo3/edit
CSS:
body {
padding: 0;
margin: 0;
color: #fff;
}
#overlay {
position:fixed;
width:100%;
height:100%;
background: rgba(0,0,0,0.8);
z-index: 9999;
display: none;
}
#dialog {
display: none;
background: #000;
border: 1px solid #0000ff;
position: fixed;
z-index: 99999;
}
#test {
display: none;
width: 1300px;
}
Javascript
$(function(){
$('button').click(function(){
var body = $('body');
var content = $('#test');
var dialog = $('<div id="dialog"></div>');
var overlay = $('<div id="overlay"></div>');
var width = content.outerWidth(true);
var height = content.outerHeight(true);
body.prepend(dialog);
body.prepend(overlay);
dialog.prepend(content)
.height(height)
.width(width);
content.show();
var left = (overlay.width()/2)-(dialog.outerWidth()/2);
var top = (overlay.height()/2)-(dialog.outerHeight()/2);
dialog.css({
left : left,
top : top
});
overlay.fadeIn('fast');
dialog.fadeIn('fast');
$(window).resize(function() {
overlay = $('#overlay');
dialog = $('#dialog');
if(overlay.length == 0 || dialog.length == 0)
return false;
var left = (overlay.width()/2)-(dialog.outerWidth()/2);
var top = (overlay.height()/2)-(dialog.outerHeight()/2);
dialog.css({
left : left,
top : top
});
});
});
});
HTML
<body>
<button>Modal Me</button>
<div id="test">
<p>Pid ac lundium urna tempor vut, elementum adipiscing mauris, magna cum odio! Urna pulvinar, et egestas magna diam mus porttitor natoque urna nisi turpis amet sed, etiam penatibus, nascetur cras lectus auctor? Nisi, elementum ac dictumst facilisis nec elementum ac? Placerat adipiscing? Dis montes cursus sagittis etiam et tortor ridiculus.</p>
<p>Nisi nec mid? Enim amet, enim rhoncus nisi penatibus nec, natoque amet placerat in in? Scelerisque magna, aliquam elit habitasse turpis parturient et facilisis urna adipiscing, porta hac nunc, sit pellentesque! In enim? Mus nunc risus amet sed tincidunt, hac placerat placerat diam, et et, sociis mid. Pellentesque, vel.</p>
</div>
</body>