Skip to content

灯箱

@astryxdesign/core v0.7.1 · Lightbox

属性 ​

属性类型默认值说明
isOpenboolean—对话框是否打开。用 v-model:is-open 绑定。
mediaLightboxMedia | readonly LightboxMedia[]—一项,或一组。数组会显示上一张、下一张和计数。
indexnumber—受控的图库下标。用 v-model:index 绑定。
defaultIndexnumber0没有传 index 时的起始下标。
hasZoombooleanfalse双击、Enter、Space、+、- 缩放图片。放大后方向键平移。
hasAutoPlaybooleanfalse显示出视频时开始播放。

LightboxMedia 是 { src, alt, caption?, type? }。type 为 image 或 video,默认 image。

事件 ​

事件参数说明
update:isOpenboolean关闭、Escape 或点遮罩时,请求改变打开状态。
update:indexnumber上一张、下一张,或未放大时按方向键,请求换到新的下标。

useLightbox ​

ts
const { bindings, open, close, isOpen, index, getTriggerProps } = useLightbox({
  media,
  hasZoom: false,
  hasAutoPlay: false,
})

bindings 是给 v-bind 用的属性和更新监听。open(index) 设置下标并打开对话框。getTriggerProps(index) 返回 role="button"、tabindex="0"、aria-haspopup="dialog",以及键盘激活,给自定义触发元素用。

主题 ​

对话框类名是 astryx-lightbox。说明文字用 large 字号、on-dark 颜色,最大宽度 600px,块方向起始边距为间距 2,行内两侧为间距 3。关闭和翻页按钮距画面边缘为间距 3。