Я использовал такой диалог JQuery: $(thisDialog).dialog();
пока не узнал, что ему не нравится режим Quirks IE9, а строгий тип документа не подходит из-за устаревшего кода, как я могу центрировать всплывающее окно из этого примера?
Как я могу центрировать этот диалог JQuery?
Ответы (2)
Решение jQuery, учитывая, что модальный диалог имеет абсолютную/относительную/фиксированную позицию:
var windowHeight = $(window).height();
var windowWidth = $(window).width();
var boxHeight = $('.modal-dialog').height();
var boxWidth = $('.modal-dialog').width();
$('.modal-dialog').css({'left' : ((windowWidth - boxWidth)/2), 'top' : ((windowHeight - boxHeight)/2)}); //change selector to whatever your selector is :)
Решение jQuery, учитывая, что модальный диалог не является абсолютным/относительным/фиксированным положением:
CSS:
margin-left: auto;
margin-right: auto;
JQuery:
var windowHeight = $(window).height();
var boxHeight = $('.modal-dialog').height();
$('.modal-dialog').css({'margin-top' : ((windowHeight - boxHeight )/2)}); //change selector to whatever your selector is :)
person
entiendoNull
schedule
22.07.2014
я бы предложил кэшировать элементы DOM для повышения его производительности. Пример: -$('.modal-dialog') мы используем это в коде несколько раз, поэтому мы должны кэшировать его, как var modalDialog=$('.modal-dialog' ); теперь мы можем использовать modalDialog вместо $('.modal-dialog'), так что это будет быстрее (это хорошая практика) спасибо
- person Devendra Soni; 22.07.2014
$(window).height() возвращал ноль, но если я вручную задаю ему левое и верхнее значения css, он работает хорошо. Спасибо!
- person patrick; 22.07.2014
@patricik,
$(window).height()
не должен возвращать 0. Попробуйте поместить фрагмент кода в $(document).ready(function(){//code here});
, и вы получите динамическое вычисление позиции диалога для всех видов размеров окон.
- person entiendoNull; 22.07.2014
@entiendoNull Я нахожусь в режиме причуд, поэтому мне нужно было использовать этот трюк, чтобы получить высоту stackoverflow.com/a/11744120/73804 а>
- person patrick; 22.07.2014
Вы должны написать что-то вроде этого:
function abrirPopup(url,w,h) {
var newW = w + 100;
var newH = h + 100;
var left = (screen.width - newW) / 2;
var top = (screen.height - newH) / 2;
var newwindow = window.open(url, 'name', 'width=' + newW +
',height=' + newH + ',left=' + left + ',top=' + top);
newwindow.resizeTo(newW, newH);
//posiciona o popup no centro da tela
//(position the popup in the center of the canvas)
newwindow.moveTo(left, top);
newwindow.focus();
return false;
}
HTML:
<a href="#" onclick="return abrirPopup('http://www.google.com.br', 500, 400)">Google</a>
person
ivanfromer
schedule
22.07.2014