0

CSS:

#mask {
    position: absolute;
    z-index: 9000;
    background-color: #000;
    display: none;          
}
#boxes .window {
    position: fixed;
    width: 800px;
    height: 600px;
}   
#boxes #dialog {
    background: #f2f2f2 url('App_Themes/prompt_panel_gradient.png') top left repeat-x;           
    width: 800px;
    height: 600px;
}

HTML:

<div id="boxes">
    <div id="dialog" class="window">
        <b>Testing modal window</b> |
        <a href="#" class="close">Close it</a>            
    </div>
    <div id="mask">
    </div>
</div>

Javascript:

<script type="text/javascript">
$(document).ready(function() {

$('a[name=modal]').click(function(e) {
    //Cancel the link behavior
e.preventDefault();
//Get the A tag
var id = $(this).attr('href');

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

//Set height and width to mask to fill up the whole screen
$('#mask').css({ 'width': maskWidth, 'height': maskHeight });

//transition effect     
$('#mask').fadeIn(500);
$('#mask').fadeTo("slow", 0.9);

    //Get the window height and width
    var winH = $(window).height();
    var winW = $(window).width();

    //Set the popup window to center
    $(id).css('top', winH / 2 - $(id).height() / 2);
    $(id).css('left', winW / 2 - $(id).width() / 2);                

    //transition effect
    $(id).fadeIn(500);
});

//if close button is clicked
    $('.window .close').click(function(e) {
    //Cancel the link behavior
    e.preventDefault();
        $('#mask, .window').hide();
    });

    $('#mask').click(function() {
    $(this).hide();
    $('.window').hide();
    });
});

</script>

一切正常,模态窗口以背景图像打开,链接工作正常,但大小不是 800x600,我也不能更改模态窗口的大小。我错过了什么?谢谢

4

2 回答 2

0

因此,在查看了您的代码之后,这就是我想出的...如果这是您正在寻找的内容,您可能想要研究 jQuery 选择器以及它们是如何工作的...

http://jsfiddle.net/Mutmatt/Mr5Qe/8/

JS:

$('a.close').click(function(e) {//Note this gets the 'a' with the class (dot notation) 'close'
    //Cancel the link behavior
    e.preventDefault();
    //Get the A tag
    var id = $(this).attr('href');

    //Get the screen height and width
    var maskHeight = $(this).parent().height();//this ('a' with 'close' class) parent (dialog div)
    var maskWidth = $(this).parent().width();
    console.log("Mask Height [" + maskHeight + "]");
    console.log("Mask Width [" + maskWidth + "]");

    //Set height and width to mask to fill up the whole screen
    $('#mask').css({
        'width': maskWidth,
        'height': maskHeight
    });

    //transition effect     
    $('#mask').fadeIn(500);
    $('#mask').fadeTo("slow", 0.9);

    //Get the window height and width
    var winH = $(window).height();
    var winW = $(window).width();

    //Set the popup window to center
    $(id).css('top', winH / 2 - $(id).height() / 2);
    $(id).css('left', winW / 2 - $(id).width() / 2);

    //transition effect
    $(id).fadeIn(500);
});

//if close button is clicked
$('.window .close').click(function(e) {
    //Cancel the link behavior
    e.preventDefault();
    $('#mask, .window').hide();
});

$('#mask').click(function() {
    $(this).hide();
    $('.window').hide();
});

​ HTML

<div id="boxes">
    <div id="dialog" class="window">
        <b>Testing modal window</b> |
        <a href="#" class="close">Close it</a>            
    </div>
    <div id="mask">
    </div>
</div>​

CSS:

#mask {
    position: absolute;
    z-index: 9000;
    background-color: #000;
    display: none;          
}
#boxes .window {
    position: fixed;
    width: 800px;
    height: 600px;
}   
#boxes #dialog {
    background: #f2f2f2 top left repeat-x;           
    width: 800px;
    height: 600px;
}​
于 2012-10-05T18:05:09.553 回答
-1

我发现只需在 html 中的 div 声明中添加宽度和高度即可解决问题。我仍然不确定为什么它在 css 代码中使用时没有影响。

代码:

<div id="dialog" class="window" style="width:800px;height:600px;">
于 2012-10-05T18:16:14.250 回答