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

如何为Fancybox 3缩略图添加标题/提示?需复用已有图片说明

如何给Fancybox 3的缩略图添加悬停标题

当然可以实现!Fancybox 3本身没有直接在thumbs配置项里提供标题设置,但我们可以通过回调函数或者自定义缩略图模板两种方法,轻松复用你已有的图片说明文字作为缩略图的悬停标题。下面分两种常见场景说明:


场景1:给页面上的原始缩略图加悬停标题

如果你的需求是鼠标悬停在页面中触发Fancybox的原始小图片上时显示标题,最简单的方式就是直接给这些图片批量添加title属性,值复用你已有的说明文字(比如data-caption)。

假设你的HTML结构是这样的:

<a data-fancybox="gallery" href="large-image-1.jpg">
  <img src="thumb-1.jpg" data-caption="这是第一张图片的说明">
</a>
<a data-fancybox="gallery" href="large-image-2.jpg">
  <img src="thumb-2.jpg" data-caption="这是第二张图片的说明">
</a>

你可以用一段简单的JS代码完成批量设置:

// 遍历所有Fancybox触发元素内的图片
$('[data-fancybox] img').each(function() {
  const caption = $(this).attr('data-caption');
  if (caption) {
    $(this).attr('title', caption);
  }
});

这样鼠标悬停原始缩略图时,就会自动显示对应的说明文字了。


场景2:给Fancybox内部的缩略图导航加悬停标题

如果你的需求是给Fancybox打开后侧边/底部的缩略图导航栏里的缩略图加悬停标题,我们有两种实现方式:

方法1:使用afterShow回调动态添加标题

在Fancybox初始化时,通过afterShow回调遍历生成的缩略图,给每个缩略图元素添加title属性:

$('[data-fancybox="gallery"]').fancybox({
  thumbs: {
    autoStart: false,
    hideOnClose: true,
    parentEl: '.fancybox-container',
    axis: 'y'
  },
  afterShow: function(instance, current) {
    // 遍历缩略图导航里的所有项
    instance.thumbs.$grid.find('.fancybox-thumb').each(function(index) {
      // 获取对应图片的说明文字
      const caption = instance.items[index].opts.caption;
      if (caption) {
        // 给缩略图的链接添加title属性(也可以给内部img标签设置)
        $(this).attr('title', caption);
      }
    });
  }
});

方法2:自定义缩略图模板

另一种更优雅的方式是自定义缩略图的HTML模板,直接在模板里嵌入title属性:

$('[data-fancybox="gallery"]').fancybox({
  thumbs: {
    autoStart: false,
    hideOnClose: true,
    parentEl: '.fancybox-container',
    axis: 'y',
    // 自定义模板,将图片说明作为缩略图的title属性
    template: '<a class="fancybox-thumb" href="javascript:;" title="{{opts.caption}}"><img src="{{src}}" alt="" /></a>'
  },
  // 确保说明文字被正确传递到模板(如果你的说明在alt或其他属性,可调整这里)
  beforeLoad: function(instance, current) {
    current.opts.caption = current.$trigger.find('img').attr('data-caption') || current.opts.caption;
  }
});

注意:如果你的图片说明文字不是存在data-caption里,而是alt或者其他自定义属性,只需要调整代码里获取属性的部分即可(比如把data-caption换成alt)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:54:08