使用Javascript重新居中模态弹窗

6
我有一个模态弹出框,最初会显示一些内容,但如果选择复选框,则会扩展一个div。模态框正确地扩展了,但是除非你向上或向下滚动,否则不会重新居中。是否有一个JavaScript事件可以添加到我的JavaScript函数中,以重新居中整个模态框?
3个回答

10

这就是它的内容:

$find('ModalPopupExtenderClientID')._layout();
例如:
$find('detailsPopUpExtenderId')._layout();

在aspx中:

<ccl:ModalPopupExtender runat="server" ID="MyPopUpExtender" TargetControlID="pop" PopupControlID="PopUp" BehaviorID="detailsPopUpExtenderId" BackgroundCssClass="ModalBackground" />

BehaviorID是设置客户端id的属性。


2
很好用,谢谢。我在代码中使用了ClientID属性来获取完整的客户端ID。 - Daniel Ballinger
1
你可以在 ModalPopupExtender 控件上设置属性 BehaviourId,而无需考虑 ClientID $find('bahaviour id')._layout();。不管怎样,这是个好技巧。谢谢! - adripanico

1

请注意,这不要与窗口的调整大小事件绑定在一起。如果是这样,您的重新居中可能会触发IE中的调整大小事件,从而导致无限循环。

如果与调整大小事件绑定,请允许发生1或2次调整大小事件,然后忽略其余的事件。(我说2次,因为在IE中,窗口的“还原”事件至少会触发2次调整大小事件(在IE6中为3次)。


0
无论您绑定了什么事件来使滚动重新居中,都要将该事件绑定到复选框/ div 扩展事件上(或从其他事件中调用它)。没有看到代码很难说得更多。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接