Image

用于展示和预览图片。

设计文档(新窗口打开)

代码演示

如何引入

import { Image, ImagePreview } from '@chenzy-design/svelte';

基本用法

通过 src 指定图片路径即可获取一个具有预览功能的图片,通过 width,height 指定图片的宽高

加载失败的占位图

可通过 fallback 自定义加载失败的占位图,该参数类型支持 string 和 Snippet

加载失败默认样式

自定义加载失败占位图

渐进加载

大图可通过 placeholder 实现渐进加载


自定义预览图片

可以通过设置 Image 组件的 src 和 preview 参数中的 src 不同来自定义预览图片

多图预览

使用 ImagePreview 包裹 Image 即可实现多图片预览

lamp1
lamp2
lamp3
lamp4

单独使用预览组件

预览组件 ImagePreview 可以单独使用,通过 visible 和 onVisibleChange 控制是否预览,通过 src 传入可以预览的图片


渲染在指定容器

可以通过 getPopupContainer 指定预览组件的父级 DOM(需要指定 position: relative),图片预览将会渲染至该 DOM 中。这会改变浮层 DOM 树位置,但不会改变视图渲染位置。

lamp1
lamp2
lamp3

自定义预览底部操作区

可以使用 renderPreviewMenu 自定义预览底部操作区域

lamp1
lamp2
lamp3

如果想基于默认底部操作区域自定义预览底部操作区域, 可以通过 renderPreviewMenu 的 menuItems 获取默认的按钮节点, menuItems 是一个 Snippet 数组,顺序和默认底部操作栏功能区域内容顺序一致

lamp1
lamp2
lamp3

自定义预览顶部展示区

通过 renderHeader 可以自定义预览顶部展示区

lamp1
lamp2

API 参考

Image

属性说明类型默认值
alt图像描述string-
class自定义样式类名string-
crossOrigin透传给原生 img 标签的 crossorigin'anonymous' | 'use-credentials'-
fallback加载失败容错地址或自定义加载失败时的显示内容string | Snippet-
height图片显示高度number-
imgCls自定义样式类名,透传给 img 节点string-
imgStyle自定义样式,透传给 img 节点string-
onClick点击图片的回调(event: MouseEvent) => void-
onError加载错误回调(event: Event) => void-
onLoad加载成功回调(event: Event) => void-
placeholder图片未加载时候的占位内容Snippet-
preview预览参数,为 false 时候禁用预览boolean | ImagePreview-
setDownloadName设置图片下载名称(src: string) => string-
src图片获取地址string-
style自定义样式string-
width图片显示宽度number-

其他支持的属性同 img。其他属性将透传至底层的 img 节点。

ImagePreview

属性说明类型默认值
adaptiveTip适应页面操作按钮提示string适应页面
class自定义样式类名string-
closable是否显示关闭按钮booleantrue
closeOnEsc点击 esc 关闭预览booleantrue
crossOrigin透传给预览图片的原生 img 标签的 crossorigin'anonymous' | 'use-credentials'-
currentIndex受控属性,当前预览图片下标number-
defaultCurrentIndex首次展示图片下标number-
defaultVisible首次是否开启预览boolean-
disableDownload禁用下载booleanfalse
downloadTip下载操作按钮提示string下载
getPopupContainer指定父级 DOM,弹层将会渲染至该 DOM 中,自定义需要设置 container position: relative() => HTMLElement() => document.body
infinite是否无限循环booleanfalse
initialZoom预览图片初始缩放比例,仅在首次打开或切换到该图片时生效一次number-
maxZoom预览图片最大缩放比例number5
minZoom预览图片最小缩放比例number0.1
lazyLoad是否开启懒加载booleantrue
lazyLoadMargin传给 options 中的 rootMargin 参数string0px 100px 100px 0px
maskClosable点击遮罩是否可关闭booleantrue
nextTip下一步操作按钮提示string下一步
originTip原始尺寸操作按钮提示string原始尺寸
onChange切换图片触发的事件(index: number) => void-
onClose点击关闭按钮时的回调函数() => void-
onDownload图片下载回调函数(src: string, index: number) => void-
onDownloadError图片下载错误回调函数(src: string) => void-
onRotateLeft旋转图片的回调(angle: number) => void-
onNext向后切换图片的回调(index: number) => void-
onPrev向前切换图片的回调(index: number) => void-
onZoomIn图片放大时的回调函数(zoom: number) => void-
onZoomOut图片缩小时的回调函数(zoom: number) => void-
onVisibleChange切换可见状态触发的回调(visible: boolean) => void-
preLoad是否开启预加载booleantrue
preLoadGap预加载的步长number2
previewTitle自定义预览 titlestring | Snippet-
previewCls自定义预览样式类名string-
previewStyle自定义预览样式string-
prevTip上一步操作按钮提示string上一步
renderCloseIcon自定义关闭 iconSnippet-
renderLeftIcon自定义向左 icon,入参为当前预览图下标Snippet<[currentIndex]>-
renderRightIcon自定义向右 icon,入参为当前预览图下标Snippet<[currentIndex]>-
renderHeader自定义渲染预览顶部信息,入参为当前图 previewTitleSnippet<[title]>-
renderPreviewMenu自定义渲染预览底部菜单信息Snippet<[MenuProps]>-
rotateTip旋转操作按钮提示string旋转
showTooltip是否展示底部操作区提示booleanfalse
src图片列表信息string | string[]-
style自定义样式string-
viewerVisibleDelay隐藏预览操作按钮前的无操作时长number10000
visible受控属性,是否预览boolean-
zIndex预览层层级number1070
zoomInTip放大操作按钮提示string放大
zoomOutTip缩小操作按钮提示string缩小
zoomStep图片每次缩小/放大比例number0.1
setDownloadName设置图片下载名称(src: string) => string-
属性说明类型
curPage当前图片页下标number
disabledPrev是否禁用向左切换按钮boolean
disabledNext是否禁用向右切换按钮boolean
disabledZoomIn是否禁用放大按钮boolean
disabledZoomOut是否禁用缩小按钮boolean
disableDownload是否禁用下载按钮boolean
max图片缩放最大比例number
min图片缩放最小比例number
onDownload图片下载的调用函数() => void
onZoomIn图片放大时的调用函数() => void
onZoomOut图片缩小时的调用函数() => void
onPrev向前切换图片的调用函数() => void
onNext向后切换图片的调用函数() => void
onRotateLeft逆时针旋转图片的调用函数() => void
onRotateRight顺时针旋转图片的调用函数() => void
onRatioClick切换原始尺寸↔适应页面的调用函数() => void
ratio原始尺寸或适应页面按钮状态'adaptation' | 'realSize'
step缩放的比例步长number
totalNum可预览的总图片数number
zoom当前图片缩放比例number
menuItems默认底部预览操作区域功能按钮 Snippet 数组Snippet[]

设计变量

变量
默认值
用法
--cd-image-bg var(--cd-color-fill-0) 图片占位背景
--cd-image-header-close-bg rgba(0, 0, 0, 0.75) $color-image_header_close-bg:header 关闭 icon hover 背景(Semi 明暗一致)
--cd-image-mask-bg var(--cd-color-overlay-bg) $color-image_mask-bg:图片 hover 预览蒙层背景
--cd-image-mask-color var(--cd-color-white) 图片操作遮罩文字颜色
--cd-image-mask-hover-bg rgba(255, 255, 255, 0.15) 预览工具条/切换按钮 hover 时的浅色高亮叠层(浮在深色遮罩上)
--cd-image-mask-info-text var(--cd-color-white) $color-image_mask_info_text:蒙层「预览」文字颜色
--cd-image-placeholder-color var(--cd-color-text-3) 图片占位/错误文字颜色
--cd-image-preview-bg var(--cd-color-overlay-bg) $color-image_preview-bg:预览浮层遮罩背景
--cd-image-preview-disabled-color rgba(249, 249, 249, 0.35) $color-image_preview_disabled:禁用 icon 颜色(Semi 明暗一致)
--cd-image-preview-divider-bg rgba(255, 255, 255, 0.5) $color-image-preview_divider-bg:footer 分割线颜色(Semi 明暗一致)
显示第 1 条-第 10 条,共 20 条
  • 1
  • 2