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

如何在Bootstrap 4 Lightbox中添加图片点击后的弹窗文本内容

实现Bootstrap 4 Lightbox弹窗显示自定义文本

步骤1:给图片链接添加自定义文本属性

在每个触发lightbox的<a>标签上添加data-caption属性,填入对应图片的说明文本:

<div class="row photos">
  <div class="col-sm-6 col-md-4 col-lg-3 item">
    <a href="https://i.imgur.com/zmzERpe.jpg" data-lightbox="photos" data-caption="这是第一张图片的描述内容">
      <img class="img-fluid" src="https://i.imgur.com/zmzERpe.jpg">
    </a>
  </div>
      
  <div class="col-sm-6 col-md-4 col-lg-3 item">
     <a href="https://i.imgur.com/gX11Vt5.jpg" data-lightbox="photos" data-caption="第二张图片的详细说明">
       <img class="img-fluid" src="https://i.imgur.com/gX11Vt5.jpg">
     </a>
  </div>
</div>

步骤2:在Lightbox弹窗中添加文本容器

找到你的lightbox模态框结构,新增一个用于展示文本的容器:

<!-- 示例模态框结构,添加.caption容器 -->
<div class="lightbox-modal fade" id="lightbox-modal" tabindex="-1" role="dialog" aria-hidden="true">
  <div class="modal-dialog modal-dialog-centered" role="document">
    <div class="modal-content">
      <div class="modal-body">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
        <img id="lightbox-image" class="img-fluid" src="" alt="">
        <!-- 新增文本显示容器 -->
        <div id="lightbox-caption" class="mt-3 text-center text-muted"></div>
      </div>
    </div>
  </div>
</div>

步骤3:修改JavaScript逻辑读取并渲染文本

更新控制lightbox弹出的JS代码,读取data-caption内容并插入到弹窗容器:

// 监听lightbox链接点击事件
$('[data-lightbox="photos"]').click(function(e) {
  e.preventDefault();
  const imgSrc = $(this).attr('href');
  const captionText = $(this).data('caption') || '';
  
  // 赋值图片和文本
  $('#lightbox-image').attr('src', imgSrc);
  $('#lightbox-caption').text(captionText);
  
  // 打开模态框
  $('#lightbox-modal').modal('show');
});

// 若有切换按钮,同步更新文本(按需调整)
$('.lightbox-prev').click(function() {
  const currentItem = $('.photos .item.active');
  const prevItem = currentItem.prev('.item');
  if(prevItem.length) {
    const caption = prevItem.find('[data-lightbox="photos"]').data('caption');
    $('#lightbox-caption').text(caption || '');
  }
});

$('.lightbox-next').click(function() {
  const currentItem = $('.photos .item.active');
  const nextItem = currentItem.next('.item');
  if(nextItem.length) {
    const caption = nextItem.find('[data-lightbox="photos"]').data('caption');
    $('#lightbox-caption').text(caption || '');
  }
});

步骤4:可选样式优化

给文本容器添加基础样式提升显示效果:

#lightbox-caption {
  font-size: 1rem;
  line-height: 1.5;
  max-width: 80%;
  margin: 0 auto;
}

核心逻辑是通过data-*属性存储每张图片的自定义文本,再借助JavaScript读取内容并渲染到弹窗的指定容器中,适配原有的lightbox交互逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 21:45:32