Html 通过单击主体上的任意位置关闭Div覆盖
这就是我所做的:Html 通过单击主体上的任意位置关闭Div覆盖,html,overlay,fade,jquery,Html,Overlay,Fade,Jquery,这就是我所做的: $('#keks-overlay').hide(); $('#click').click(function(){ $('#keks-overlay').toggle(450); }); $('#close-overlay').click(function(){ $('#keks-overlay').toggle(250); }); jsFiddle: 这很好,但它仅通过单击“X”(#关闭覆盖)来显示/隐藏(切换) 我想做一些类似于fancybox效
$('#keks-overlay').hide();
$('#click').click(function(){
$('#keks-overlay').toggle(450);
});
$('#close-overlay').click(function(){
$('#keks-overlay').toggle(250);
});
jsFiddle:
这很好,但它仅通过单击“X”(#关闭覆盖)来显示/隐藏(切换)
我想做一些类似于fancybox效果的事情:点击全身的任何地方就会淡出
感谢您的帮助。请尝试(文档准备就绪时)
然后获取对文档的所有单击,检查inoverlay变量,如果为false,则隐藏覆盖,否则什么也不做。如果您有一个按钮首先打开覆盖,请确保在截取文档上的单击时,它不是正在单击的按钮
$(document).click(function(e){
if(inoverlay && (e.target.attr('id') != buttonForOverlay.attr('id') )) {
closeOverlay();
}
});
您可以将事件处理程序添加到包含整个页面(或文档本身)的
div
,并在该处理程序中添加覆盖
$("#somebody").click(function() {
$('#keks-overlay').hide(250);
});
但是,如果要防止对覆盖本身的单击触发hide()
,可以向覆盖添加返回false的事件处理程序(以防止事件冒泡),或者将覆盖放置在保存其余内容的div
之外(这是因为叠加具有绝对定位)
WOW-真棒又简单的男人,谢谢分享和更新小提琴,非常酷
$("#somebody").click(function() {
$('#keks-overlay').hide(250);
});