跳到主要内容
界面图谱Interface Atlas
☰
EN
组件Overlay / Media

灯箱

Lightbox

别名:图片灯箱大图预览图片放大预览看大图lightbox

这是什么

以压暗遮罩放大展示图片或视频的媒体浮层,原页面暂时失去交互。内容居中呈现,常配左右切换、缩放与关闭;它是媒体专用的模态框,与通用对话框的区别在于主体是可观赏的视觉内容而非表单或文案。

名词辨析

Lightbox 是媒体专用的 Modal;Modal 是通用容器。灯箱打开的是「可以看的东西」,对话框打开的是「要你处理的事」。

交互实验室

试一试,再决定怎么用

打开灯箱浏览一组图片,用箭头切换并尝试缩放与关闭。

正在加载实验室…

使用时关注什么

  • 01遮罩外点击或 Esc 可关闭,关闭后焦点回到缩略图
  • 02图片加载失败或视频不可用时有替代说明

✓ 适用场景

  • 需要查看图片细节、原图或成组照片
  • 视频需要脱离页面布局专注播放
  • 缩略图点击后预期放大预览

✕ 不适用场景

  • 内容是表单、说明或确认操作,用 modal
  • 用户需要边看边操作底层页面,用 drawer 或 popover
  • 媒体本身就是页面主体,直接用画廊页或视频播放页

常见形式

图片放大

Image zoom

单图全屏放大,可缩放或平移查看细节

画廊切换

Gallery

带左右箭头与计数,连续浏览组图

视频灯箱

Video lightbox

浮层内播放视频,常自动播放并可全屏

实现要点

position: fixedobject-fit: containz-indexbackground-color

遮罩固定铺满并压暗底层,媒体用 object-fit: contain 居中,避免裁切。打开时锁定页面滚动、焦点困在浮层内;左右箭头与 Esc 均可键盘操作。切换用轻微淡入而非大幅位移,尊重 prefers-reduced-motion。

平台 API

<dialog>role="dialog"aria-modal="true"

代码里叫什么

同一控件在不同体系里的叫号——用对名字,Prompt 和检索才准。

体系名称
ARIA APGDialog (Modal)
yet-another-react-lightboxLightbox
MUIDialog (full-screen image)

相关概念

模态框Modal

覆盖在页面之上、带半透明遮罩的对话框,打断用户当前流程,要求先完成弹窗内的任务或决策。 遮罩阻断与底层页面的交互,焦点被暂时困在弹窗内,是容器类浮层中打断程度最高的一种。

组件替代方案
轮播Carousel

用水平滑动的轨道展示一组内容,同一时刻只突出一项,其余滑出视野或露出边缘作暗示。通过分页点、 箭头或自动播放切换,常用于首屏 Banner、图片画廊与推荐位。适合「一组同类内容、逐个浏览」的场景, 不适合需要并排对照的信息。

组件搭配使用
抽屉Drawer

从屏幕边缘(多为右侧或左侧)滑入、通常带遮罩的面板。比模态框轻:能承载较长内容又不离开当前页面, 关闭后原样回到上下文;移动端常以左滑导航或底部抽屉的形式出现。

组件相似概念

容易混淆

模态框Modal

modal 承载通用任务与文案,lightbox 专用于放大观赏媒体

轮播Carousel

carousel 在页面内轮播,lightbox 在压暗遮罩上全屏展示

可搭配的风格

参考来源

Markdown 版(给 Agent) · JSON