You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改jQuery代码实现点击Overlay区域关闭图片放大遮罩?

解决方案:点击Overlay空白区域关闭图片放大层

要实现点击图片以外的Overlay区域关闭放大层,需要调整事件绑定逻辑,具体修改如下:

  1. 移除原有的#imgBig点击关闭事件,转而给#overlay绑定点击事件
  2. 在#overlay的点击回调中,判断点击目标是否为放大图片本身,若不是则执行关闭操作
  3. 给#imgBig添加事件阻止冒泡,避免点击图片时触发#overlay的关闭逻辑

修改后的完整代码:

$(".brick img").click(function() {
  $("#imgBig").attr("src", $(this).prop('src'));
  $("#overlay").show('slow');
  $("#overlayContent").show('slow');
});

// 点击Overlay区域关闭
$("#overlay").click(function(e) {
  // 判断点击的不是放大后的图片
  if (!$(e.target).is("#imgBig")) {
    $("#imgBig").attr("src", "");
    $("#overlay").hide();
    $("#overlayContent").hide();
  }
});

// 阻止图片的点击事件冒泡到Overlay
$("#imgBig").click(function(e) {
  e.stopPropagation();
});

原理说明:

  • e.target获取当前点击的DOM元素,通过$(e.target).is("#imgBig")判断是否点击了图片本身
  • e.stopPropagation()阻止图片的点击事件向上冒泡到父级的Overlay,确保点击图片时不会触发关闭逻辑

内容的提问来源于stack exchange,提问作者GamingLegion

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 19:00:03