提问人:Andrew G. Johnson 提问时间:3/20/2010 最后编辑:Andrew G. Johnson 更新时间:3/7/2012 访问量:2102
关于 SimpleModal jQuery 插件的问题 -- 可以在初始打开后重新居中吗?
Question about SimpleModal jQuery plugin -- possible to re-center after initial open?
问:
我的问题与SimpleModal jQuery插件有关。我打开模态窗口没有问题,但是一旦打开它,它就会停留在屏幕上[居中]的位置,但是它的内容正在发生变化,使其更高,因此不再居中。有没有一种简单的方法可以重新对齐它,使其再次居中?
编辑:我认为通过显示两个屏幕截图来解释我的问题会有所帮助:之前和之后 - 基本上我正在使用jQuery的slideUp和slideDown功能来隐藏信用卡表单,具体取决于用户是通过现金/支票还是信用卡付款。显然,使用信用卡字段时,容器的高度会增加。
我尝试添加slideUp / slideDown的回调元素,但无济于事 - 实际上抛出JS错误,因为显然该函数不存在。我总是尝试添加 autoResize 选项并将其设置为 true。$("div#modal-element").setPosition()
setPosition()
答:
2赞
Eric Martin
3/20/2010
#1
如果你在其中一个回调中,你可以访问所有函数和属性 - 所以你可以调用 setPosition() 来重新居中对话框。例如:
$(element).modal({
onShow: function (dialog) {
var modal = this;
// do stuff and change the container dimensions
modal.setPosition(); // re-center the container
}
});
我还没有测试代码,但它应该可以工作。
它)
评论
0赞
Andrew G. Johnson
3/22/2010
@Eric - 你能快速看一下我的截图,看看你认为这应该有效吗?我的代码似乎认为setPosition()函数不存在
0赞
Eric Martin
3/23/2010
你寄给我了吗?只要你在回调中取消它,它就应该可以工作......
3赞
Nick Craver
3/20/2010
#2
由于 SimpleModal纵以处理窗口大小调整时的重新居中,因此最简单的方法是触发该事件。内容更改后,只需调用以下命令:
$(window).resize();
评论
0赞
Andrew G. Johnson
3/22/2010
@Nick - 我认为我们走在正确的道路上,但由于某种原因,这导致我的模态框停留在原地,但添加了滚动条
0赞
Nick Craver
3/24/2010
@Andrew G. Johnson - 不幸的是,SimpleModal 没有公开 diaog 对象(在它的回调之外),最接近它的事件是$(window).trigger('resize.simplemodal');
评论