jquery工具覆盖,如何在切换覆盖时保留蒙版
我有一个简单的问题,有 2 个叠加层。一个叠加层由另一叠加层触发(并由另一叠加层触发)。由于任一时间只能有一个叠加层处于活动状态,因此触发叠加层 2 的叠加层 1 会正确关闭。然而,它带有遮罩,因此覆盖层 2 出现时没有遮罩。如何在 2 个叠加层之间切换而不使蒙版消失?
代码覆盖层 1
$("button[rel*=busy]").overlay({
api: true ,
mask: {
maskId: 'defaultMask' ,
color: null
},
effect: 'apple',
onLoad: function() {
$.post( 'ajax_file_here.php' ,
{ var: something } ,
function( data ){
if( data.status == 'confirm' ) {
confirmOverlay();
} else {
errorOverlay();
}
} ,
'json' );
} ,
closeOnClick: false ,
closeOnEsc: false ,
close: '.noClose'
});
和覆盖层 2
var errOverlayObject = $('#error_overlay').overlay({
api: true,
mask: {
maskId: 'defaultMask' ,
color: null
},
effect: "apple"
});
function errorOverlay() {
errOverlayObject.load();
}
正如您所看到的,还有第二个覆盖层的确认版本,但其工作原理与错误覆盖层相同。
I have a simple problem with 2 overlays. One overlay is triggered from (and by) the other overlay. As only one overlay can be active at any one time, correctly so, overlay number 1 that triggered 2 closes. However, it takes the mask with it and hence overlay 2 appears without the mask. How can I switch between 2 overlays without the mask disappearing?
The code, overlay 1
$("button[rel*=busy]").overlay({
api: true ,
mask: {
maskId: 'defaultMask' ,
color: null
},
effect: 'apple',
onLoad: function() {
$.post( 'ajax_file_here.php' ,
{ var: something } ,
function( data ){
if( data.status == 'confirm' ) {
confirmOverlay();
} else {
errorOverlay();
}
} ,
'json' );
} ,
closeOnClick: false ,
closeOnEsc: false ,
close: '.noClose'
});
And overlay 2
var errOverlayObject = $('#error_overlay').overlay({
api: true,
mask: {
maskId: 'defaultMask' ,
color: null
},
effect: "apple"
});
function errorOverlay() {
errOverlayObject.load();
}
As you can see there is also a confirm version of the second overlay, but that works identical to the error one.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我认为更简单的方法是
I think an easier way would be to
我希望你不介意,但我创建了自己的简化示例。希望您能够根据您的情况进行调整。
对话框之间有一点闪烁(由于动画效果),但遮罩保持在原位。我想您可以通过调整动画效果设置来消除闪烁 - 我怀疑您可以在叠加层的 onBeforeLoad 方法中执行某些操作,但我不确定具体是什么。
我希望这有帮助。
I hope you do not mind but I created my own simplified example. Hopefully you will be able to adapt this to your situation.
There is a little bit of flicker between the dialogue boxes (due to the animation effect) but the mask stays in place. I imagine you could remove the flickering by adjusting the animation effect settings - I suspect you could do something in the overlay's onBeforeLoad method but I'm not exactly sure what.
I hope this helps.
您可以将“closeSpeed: 0”添加到第一个叠加层的掩码配置中,它将起作用。
例如:
You can add "closeSpeed: 0" into mask configuration of the first overlay and it will work.
For example:
另一种方法是单独处理遮罩:在没有遮罩的情况下创建叠加层,并单独激活遮罩。
您的第一个覆盖层需要进行如下设置:
然后,为了显示第二个覆盖层,您将 closeMask 变量设置为 false。显然,第二个覆盖层必须在关闭时隐藏遮罩。
An alternative is to handle separately the mask: the overlay is created without a mask, and the mask is activated separately.
Your first overlay would require a setup such as:
Then, in order to show the second overlay, you set the closeMask variable to false. Obviously, the second overlay must hide the mask on close.