更改pagesize时,中心jquery弹出框

时间:2012-05-15 09:05:25

标签: jquery popup size center

我正在使用jQuery弹出窗口,只是想知道当我更改浏览器窗口宽度时如何使框保持居中,目前它在页面加载时获得中心点并在我更改宽度时保持在该位置。 / p>

这是我用于弹出功能的代码:

 //Popup dialog
 function popup(message) {

// get the screen height and width  
var maskHeight = $(document).height();  
var maskWidth = $(window).width();

// calculate the values for center alignment     
var dialogLeft = (maskWidth/2) - ($('#dialog-box').width())/2; 

// Set overlay to fill screen
$("#dialog-overlay").css("width","100%").fadeIn();

// Set dialogue box 80px from top and central
$('#dialog-box').css({top:80, left:dialogLeft}).fadeIn();

// display the message
//$('#dialog-message').html(message);

// Close button fades out overlay and message   
$('.button').live('click',function()
{
    $(this).parent().fadeOut();
    $('#dialog-overlay').fadeOut();
    return false;
});

 }  

2 个答案:

答案 0 :(得分:2)

JavaScript解决方案是使用window.onresize,只要窗口大小发生任何变化就会触发。

window.onresize = function() {
    var maskWidth = $(window).width();
    var dialogLeft = (maskWidth/2) - ($('#dialog-box').width())/2; 
    $('#dialog-box').css({top:80, left:dialogLeft});
}

可能最好将内部代码放入一个函数中以保存重复内容。

答案 1 :(得分:0)

除非你需要支持IE6,否则看看使用position:fixed并在CSS而不是JS中完成大部分工作可能是有意义的。

E.g。

#dialog-overlay {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}

#dialog-box {
    position: fixed;
    top: 50%;
    left: 50%;
    width: 400px;
    height: 500px;
    margin: -250px 0 0 -200px; /* width and height divided by 2 */
}

然而,假设您有一个固定的宽度/高度对话框。