如何将对话框位置设置为页面中心的动画?

时间:2011-10-28 10:40:10

标签: jquery

这是我的代码:

dialog = $(this).closest('.ui-dialog')
dialog.animate({
    left: document.width - dialog.width(), // or you might want to use .outerWidth()
    top: document.height - dialog.height()
}, 1000);

我想将jQuery对话框放在页面的中心,带有动画。我只是不明白为什么它不起作用。任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

我其实更喜欢position:fixed。这是一个简单的对话演示,转换到浏览器窗口的中心。

演示:http://jsfiddle.net/FJPjQ/show
来源:http://jsfiddle.net/FJPjQ/


基本上它需要一个位置:固定div并给它一个50%的左值和50%的最高值。这会将对话框的左上角放在窗口的中心。为了使对话本身居中,你可以给它一个负高度的一半的上边距和一半宽度的左边距。

的jQuery

var dialogue = $('.ui-dialog')

dialogue.animate({
    left: "50%",
    top: "50%",
    marginLeft:  -dialogue.width()/2,
    marginTop: -dialogue.height()/2
}, 1000);

HTML

<div class="ui-dialog">hi there</div>

CSS

.ui-dialog
{
    width: 200px;
    height: 50px;
    background: red;

    /* change these to change where it slides in from */
    top: -100px;
    margin-left: -100px;
    left: 50%;

    /* and this is what makes it work */
    position: fixed;
}

答案 1 :(得分:0)

此代码段可以帮助您同时居中和制作动画:

$("#myJQUIdialog").parent().position({
    my: "center",
    at: "center",
    of: window,
    using: function (pos, ext) {
        $(this).animate({ top: pos.top }, 600);
    }
});