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

Laravel-Inertia-React应用中Fancybox画廊循环功能失效问题

解决Fancybox循环渲染图片无法切换的问题

你当前的问题核心是给每张循环渲染的图片都单独套了一个<Fancybox>组件,这会让每张图片都成为独立的Fancybox实例,彼此之间没有关联,自然没法组成画廊切换。静态写法里所有图片都在同一个Fancybox上下文里,所以功能正常。

修正方案很简单:把<Fancybox>组件提到循环外面,让所有图片链接都处于同一个Fancybox实例下,同时保持所有<a>标签的data-fancybox="gallery"属性一致,这样Fancybox就能识别它们属于同一组画廊了。

修正后的代码:

<div className="row">
  <Fancybox
    options={{
      Carousel: { infinite: false },
      transition: "slide",
    }}
  >
    {photos.map((photo) => (
      <div className="col-lg-3 col-md-4 col-xs-6 thumb" key={photo.id}>
        <a data-fancybox="gallery" href={STORAGE_URL + photo.img_path}>
          <img src={STORAGE_URL + photo.img_path} width="300" height="200" />
        </a>
      </div>
    ))}
  </Fancybox>
</div>

关键点说明:

  • 只需要一个<Fancybox>容器包裹所有需要加入画廊的图片元素
  • 确保所有触发画廊的<a>标签使用相同的data-fancybox值(这里是gallery),Fancybox会自动将这些元素归为同一组,实现切换功能

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 21:43:13