我再次查看并检查了元素,现在我很清楚发生了什么。
一旦您手动调整对话框的大小,jQuery 就会注入一个style具有固定值的属性,类似于:
<div id="dialog" style="width: 376px; min-height: 99px; height: 282px;" class="ui-dialog-content ui-widget-content" scrolltop="0" scrollleft="0">
</div>
然后,当您对其进行动画处理时,样式会干扰您的预期结果。
在动画之前删除style属性似乎是有效的,类似于:
$("#content").click(function () {
$("#dialog").attr("style", "").dialog("widget").animate({
width: $(document).width() -100,
height: $(document).height() -100,
left: 0,
top: 0
}, 150);
});
演示- 移动到底left部top
编辑
该style属性将不断给您带来问题。删除它后,当再次手动调整大小时,它会再次注入它们,从而弄乱您的预期结果。
我发现解决这个问题的唯一方法是在调整大小时继续删除它们:
$("#dialog").on("dialogresize", function(){
$(this).attr("style", "");
});
编辑
无论如何,我希望灰色背景填充整个对话框。
这似乎是您的 CSS 选择器的问题。
改变这个:
.ui-dialog .ui-dialog-content {
background : #cacaca;
}
对此:
.ui-dialog {
background : #cacaca;
}
此外,您仍然存在注入样式属性会弄乱您想要的样式并使用上述代码的问题,这些代码会在重新调整大小以及动画修复该样式时删除样式属性。
演示- 灰色背景填充对话框并始终删除注入的样式属性
DEMO - 与上面相同,但没有empty-container元素