Image 图片

图片容器,在保留所有原生 img 的特性下,支持懒加载,自定义占位、加载失败等

基础用法

可通过fit确定图片如何适应到容器框,同原生 object-fit。

fill
contain
cover
none
scale-down

占位内容

可通过slot = placeholder可自定义占位内容

Default
Custom
Loading...

加载失败

通过 slot = error and slot = viewer-error自定义图像加载错误时的内容。

懒加载

TIP

浏览器原生支持的 loading属性在 2.2.3版本加入。 您可以使用 loading="lazy" 替换之前的lazy= true。

如果当前浏览器支持原生图片延迟加载,则先使用原生能力,否则将使用滚动监听实现相同效果。

可通过lazy开启懒加载功能,当图片滚动到可视范围内才会加载。可通过 scroll-container 来设置滚动容器,若未定义,则为最近一个 overflow 值为 auto 或 scroll 的父元素。

图片预览

可通过 previewSrcList 开启预览大图的功能。你可以通过 initial-index 初始化第一张预览图片的位置。默认初始位置为 0。

手动打开预览 2.9.4

自定义工具栏2.9.4

可通过 toolbar 插槽自定义工具栏内容,自版本 2.9.7 起,插槽中添加了 setActiveItem 方法,用于根据索引切换图片。

自定义进度条 2.9.4

可通过 show-progress 控制是否在预览图片时显示进度条。自版本 2.9.8 起,进度条会在使用 progress 插槽时显示。

Image API

Image Attributes

属性名说明类型默认值
src图片地址,同原生string''
fit图片填充方式,同原生 object-fitenum''
hide-on-click-modal开启预览时,点击遮罩是否关闭预览booleanfalse
loading浏览器加载方式,同原生 loadingenum—
lazy是否使用懒加载booleanfalse
scroll-container懒加载时监听滚动的容器string / HTMLElement—
alt原生 altstring—
referrer-policy原生 referrerPolicystring—
cross-origin原生 crossoriginenum—
preview-src-list允许大图预览的链接列表array[]
z-index预览层级number—
initial-index初始预览下标number0
close-on-press-escape预览时按 ESC 是否关闭booleantrue
preview-teleported是否把预览查看器传送到 bodybooleanfalse
infinite预览是否循环booleantrue
zoom-rate缩放比例基数number1.2
scale预览图片缩放值number1
min-scale最小缩放值number0.2
max-scale最大缩放值number7
show-progress是否显示预览进度booleanfalse
class-name / style根元素类名与样式string / object—

Image Events

事件名说明参数
onLoad同原生 loadFunction
onError同原生 errorFunction
onSwitch切换预览图片时触发Function
onClose关闭预览时触发Function
onShow打开预览时触发Function

Image Slots

插槽名说明React 写法
placeholder图片未加载完成时的占位内容renderPlaceholder
error图片加载失败时的内容renderError
viewer预览查看器自定义内容viewer
progress预览进度自定义内容renderProgress
toolbar预览工具栏自定义内容renderToolbar
viewer-error预览图片加载失败时的内容renderViewerError

Image Exposes

名称说明类型
showPreview手动打开大图预览Function

通过 ref 拿到 expose:const ref = useRef<ImageExpose>(null),再调用 ref.current?.showPreview()。

Image Viewer API

Image Viewer Attributes

属性名说明类型默认值
url-list预览链接列表array[]
z-index预览遮罩层级number—
initial-index初始预览下标number0
infinite预览是否循环booleantrue
hide-on-click-modal点击遮罩是否关闭booleanfalse
teleported是否把查看器传送到 bodybooleanfalse
close-on-press-escape按 ESC 是否关闭booleantrue
zoom-rate缩放比例基数number1.2
scale预览图片缩放值number1
min-scale最小缩放值number0.2
max-scale最大缩放值number7
show-progress是否显示进度booleanfalse
crossorigin原生 crossoriginenum—

Image Viewer Events

事件名说明参数
onClose关闭时触发Function
onError图片加载失败时触发Function
onSwitch切换图片时触发Function
onRotate旋转时触发Function

Image Viewer Slots

插槽名说明React 写法 / 作用域
viewer自定义内容children
progress自定义进度内容renderProgress({ activeIndex, total })
toolbar自定义工具栏内容renderToolbar({ actions, prev, next, reset, activeIndex, setActiveItem })
viewer-error自定义加载失败内容renderViewerError({ activeIndex, src })

Image Viewer Exposes

名称说明类型
setActiveItem手动切换图片Function