我有一个包含动态内容的YUI对话框。所以高度需要相应调整。为此,如果我设置高度:“auto”,则fixedcenter:true属性无法正常工作。弹出窗口水平居中,但垂直方向的底边缘与视口底部对齐,在顶部留下大量空间。但是,如果我将高度设置为某个值,则可以正常工作,即对话框水平和垂直居中。但由于内容是动态的,我需要明确更新高度,这是不理想的。
我已经检查了这些问题并试图在那里指定更改无效。
http://yuilibrary.com/forum/viewtopic.php?p=6620
http://yuilibrary.com/forum/viewtopic.php?f=89&t=1004&hilit=fixedcenter
似乎(高度:自动)问题是在“setBody”调用之前计算并应用对话框高度和定位。因此对话框不使用计算出的高度。
这是我的代码。任何人都可以看到可能出现的问题吗?
myPopup =
{
popup: null,
init: function()
{
this.popup = new YAHOO.widget.Dialog("myPopup",
{
width: "500px",
//height: "400px",
height: "auto",
zIndex: 10,
close: true,
fixedcenter: true,
visible: false,
draggable: true,
modal: true,
hideaftersubmit: true,
constraintoviewport: false,
effect: { effect: YAHOO.widget.ContainerEffect.FADE, duration: 0.10 }
});
if (YAHOO.env.ua.ie > 0)
this.popup.cfg.setProperty("iframe", true);
PluginFix.showHidePlugins(this.popup);
this.popup.setHeader("NA");
this.popup.setBody("NA");
this.popup.render(document.body);
},
onCreateClick: function()
{
if (!this.popup)
this.init();
this.popup.setBody("<div class='ajaxloader'></div>");
this.popup.setHeader("Create Notification");
this.popup.changeContentEvent.subscribe(function()
{ /* Some project specific calls here */ });
this.popup.hideEvent.subscribe(function()
{ /* Some project specific calls here */ });
this.popup.show();
var cObj = OT.Ajax.asyncRequest('GET', '/admin/NotificationDetails.aspx',
{
success: function(o)
{ myPopup.popup.setBody(o.responseText); },
failure: function(o)
{ /* TODO - error handling */ }
});
}
};