1

最初我在页面中心显示具有固定高度和宽度的 jquery 对话框。现在我想在对话框中放置一个包含大量 html 内容的 div。现在我想根据具有动画功能的 div 高度和宽度动态增加对话框高度和宽度,但我希望该对话框应位于页面中心。

当对话框第一次在页面中心打开时,稍后如果我更改高度和宽度,则对话框不在页面中心。因此,请帮助我了解当高度和宽度将随动画功能增加时如何强制对话框粘贴在页面中心的概念。

这样我正在使用对话框....这是我的小代码

 $(document).ready(function () {

         $("#dialog").dialog({
             autoOpen: false,
             bgiframe: true,
             height: 85,
             width: 330,
             modal: false,
             draggable: true,
             resizable: false,
             position: 'center',
             show: {
                 effect: "fade",
                 duration: 1000
             },
             hide: {
                 effect: "fade",
                 duration: 500
             },
             open: function (type, data) {
                 $(this).parent().appendTo("form");
             }
         });
         });

如果可能的话,请向我展示示例代码的技巧。谢谢

4

3 回答 3

0

您可以简单地使用对话框的“minHeight”选项,而不是将 javascript 观察程序放在 div 上。

http://jqueryui.com/demos/dialog/ -> 选项

这使您的代码看起来像这样:

 $("#dialog").dialog({
         autoOpen: false,
         bgiframe: true,
         minHeight: 85,
         width: 330,
         modal: false,
         draggable: true,
         resizable: false,
         position: 'center',
         show: {
             effect: "fade",
             duration: 1000
         },
         hide: {
             effect: "fade",
             duration: 500
         },
         open: function (type, data) {
             $(this).parent().appendTo("form");
         }
     });
于 2012-05-01T11:52:41.723 回答
0

你可以试试这个:DEMO

这会自动动态增加对话框的高度

HTML:

<div id="dialog">
    <div id="body">I'm a dialog</div>
</div>

脚本:

<script>
     $('#dialog').dialog(
      "resize", "auto"
     );
     $('#dialog').dialog();
     setTimeout(function() {
        $('#body').append("Hello!<br>");
        setTimeout(arguments.callee, 1000);
      }, 1000);
</script>
于 2012-04-30T13:47:53.443 回答
0

好的,如果不考虑如何调整元素的大小,这会起作用吗?

$(#dialog).resize(function(){
    var $host = $("#idOfParent");
    var hostHeight = $host.Height();
    var hostWidth = $host.Width();
    // center dialog on screen
    this.left = (hostWidth - this.width) / 2
    this.top= (hostHeight - this.height) / 2
});

http://api.jquery.com/resize/

于 2012-04-30T13:50:46.183 回答