logoAnt Design

⌘ K
  • 设计
  • 研发
  • 组件
  • 博客
  • 资源
  • 国内镜像
6.0.0-alpha.3
  • 组件总览
  • 更新日志
    v6.0.0-alpha.3
  • 通用
    • Button按钮
    • FloatButton悬浮按钮
      5.0.0
    • Icon图标
    • Typography排版
  • 布局
    • Divider分割线
    • Flex弹性布局
      5.10.0
    • Grid栅格
    • Layout布局
    • Masonry瀑布流
      6.0.0
    • Space间距
    • Splitter分隔面板
      5.21.0
  • 导航
    • Anchor锚点
    • Breadcrumb面包屑
    • Dropdown下拉菜单
    • Menu导航菜单
    • Pagination分页
    • Steps步骤条
    • Tabs标签页
  • 数据录入
    • AutoComplete自动完成
    • Cascader级联选择
    • Checkbox多选框
    • ColorPicker颜色选择器
      5.5.0
    • DatePicker日期选择框
    • Form表单
    • Input输入框
    • InputNumber数字输入框
    • Mentions提及
    • Radio单选框
    • Rate评分
    • Select选择器
    • Slider滑动输入条
    • Switch开关
    • TimePicker时间选择框
    • Transfer穿梭框
    • TreeSelect树选择
    • Upload上传
  • 数据展示
    • Avatar头像
    • Badge徽标数
    • Calendar日历
    • Card卡片
    • Carousel走马灯
    • Collapse折叠面板
    • Descriptions描述列表
    • Empty空状态
    • Image图片
    • List列表
      废弃
    • Popover气泡卡片
    • QRCode二维码
      5.1.0
    • Segmented分段控制器
    • Statistic统计数值
    • Table表格
    • Tag标签
    • Timeline时间轴
    • Tooltip文字提示
    • Tour漫游式引导
      5.0.0
    • Tree树形控件
  • 反馈
    • Alert警告提示
    • Drawer抽屉
    • Message全局提示
    • Modal对话框
    • Notification通知提醒框
    • Popconfirm气泡确认框
    • Progress进度条
    • Result结果
    • Skeleton骨架屏
    • Spin加载中
    • Watermark水印
      5.1.0
  • 其他
    • Affix固钉
    • App包裹组件
      5.1.0
    • ConfigProvider全局化配置
    • Util工具类
何时使用
代码演示
基本用法
容错处理
渐进加载
多张图片预览
相册模式
自定义预览图片
受控的预览
自定义工具栏
自定义预览内容
预览遮罩
自定义语义结构的样式和类
嵌套
API
Image
PreviewType
PreviewGroup
PreviewGroupType
Interface
TransformType
TransformAction
ToolbarRenderInfoType
ImgInfo
CoverConfig
Semantic DOM
主题变量(Design Token)

Image
图片

可预览的图片。
使用import { Image } from "antd";
反馈
components/image提交问题待解决
文档
编辑此页
文档贡献者
Empty空状态List列表

相关资源

Ant Design X
Ant Design Charts
Ant Design Pro
Pro Components
Ant Design Mobile
Ant Design Mini
Ant Design Web3
Ant Design Landing-首页模板集
Scaffolds-脚手架市场
Umi-React 应用开发框架
dumi-组件/文档研发工具
qiankun-微前端框架
Ant Motion-设计动效
国内镜像站点 🇨🇳

社区

Awesome Ant Design
Medium
X
yuque logoAnt Design 语雀专栏
Ant Design 知乎专栏
体验科技专栏
seeconf logoSEE Conf-蚂蚁体验科技大会
加入我们

帮助

GitHub
更新日志
常见问题
报告 Bug
议题
讨论区
StackOverflow
SegmentFault

Ant XTech logo更多产品

yuque logo语雀-构建你的数字花园
AntV logoAntV-数据可视化解决方案
Egg logoEgg-企业级 Node.js 框架
Kitchen logoKitchen-Sketch 工具集
Galacean logoGalacean-互动图形解决方案
WeaveFox logoWeaveFox-前端智能研发
xtech logo蚂蚁体验科技
主题编辑器
Made with ❤ by
蚂蚁集团和 Ant Design 开源社区
loading

何时使用

  • 需要展示图片时使用。
  • 加载显示大图或加载失败时容错处理。

代码演示

API

通用属性参考:通用属性

Image

参数说明类型默认值版本
alt图像描述string-
classNames用于自定义组件内部各语义化结构的 class,支持对象或函数Record<SemanticDOM, string> | (info: { props })=> Record<SemanticDOM, string>-
fallback加载失败容错地址string-
height图像高度string | number-
placeholder加载占位,为 true 时使用默认占位ReactNode-
preview预览参数,为 false 时禁用boolean | PreviewTypetrue
src图片地址string-
styles用于自定义组件内部各语义化结构的行内 style,支持对象或函数Record<SemanticDOM, CSSProperties> | (info: { props })=> Record<SemanticDOM, CSSProperties>-
width图像宽度string | number-
onError加载错误回调(event: Event) => void-

其他属性见 <img>

PreviewType

参数说明类型默认值版本
actionsRender自定义工具栏渲染(originalNode: React.ReactElement, info: ToolbarRenderInfoType) => React.ReactNode-
classNames自定义语义化结构类名Record<SemanticDOM, string>-
closeIcon自定义关闭 IconReact.ReactNode-
cover自定义预览遮罩React.ReactNode | CoverConfig-CoverConfig v6.0 开始支持
destroyOnClose关闭预览时销毁子元素,已移除,不再支持booleanfalse
forceRender强制渲染预览图,已移除,不再支持boolean-
getContainer指定预览挂载的节点,但依旧为全屏展示,false 为挂载在当前位置string | HTMLElement | (() => HTMLElement) | false-
imageRender自定义预览内容(originalNode: React.ReactElement, info: { transform: TransformType, image: ImgInfo }) => React.ReactNode-
mask预览遮罩效果boolean | { enabled?: boolean, blur?: boolean }true-
maskClassName缩略图遮罩类名,请使用 classNames.cover 替换string-
maxScale最大缩放倍数number50
minScale最小缩放倍数number1
movable是否可移动booleantrue
open是否显示预览boolean-
rootClassName预览图的根 DOM 类名,会同时作用在图片和预览层最外侧string-
scaleStep1 + scaleStep 为缩放放大的每步倍数number0.5
src自定义预览 srcstring-
styles自定义语义化结构样式Record<SemanticDOM, string>-
toolbarRender自定义工具栏,请使用 actionsRender 替换(originalNode: React.ReactElement, info: Omit<ToolbarRenderInfoType, 'current' | 'total'>) => React.ReactNode-
visible是否显示,请使用 open 替换boolean-
onOpenChange预览打开状态变化的回调(visible: boolean) => void-
onTransform预览图 transform 变化的回调{ transform: TransformType, action: TransformAction }-
onVisibleChange当 visible 发生改变时的回调,请使用 onOpenChange 替换(visible: boolean, prevVisible: boolean) => void-

PreviewGroup

参数说明类型默认值版本
fallback加载失败容错地址string-
items预览数组string[] | { src: string, crossOrigin: string, ... }[]-
preview预览参数,为 false 时禁用boolean | PreviewGroupTypetrue

PreviewGroupType

参数说明类型默认值版本
actionsRender自定义工具栏渲染(originalNode: React.ReactElement, info: ToolbarRenderInfoType) => React.ReactNode-
classNames自定义预览类名对象Record<SemanticDOM, string>-
closeIcon自定义关闭 IconReact.ReactNode-
countRender自定义预览计数内容(current: number, total: number) => React.ReactNode-
current当前预览图的 indexnumber-
forceRender强制渲染预览图,已移除,不再支持boolean-
getContainer指定预览挂载的节点,但依旧为全屏展示,false 为挂载在当前位置string | HTMLElement | (() => HTMLElement) | false-
imageRender自定义预览内容(originalNode: React.ReactElement, info: { transform: TransformType, image: ImgInfo, current: number }) => React.ReactNode-
mask预览遮罩效果boolean | { enabled?: boolean, blur?: boolean }true-
maskClassName缩略图遮罩类名,请使用 classNames.cover 替换string-
minScale最小缩放倍数number1
maxScale最大放大倍数number50
movable是否可移动booleantrue
open是否显示预览boolean-
rootClassName预览图的根 DOM 类名,会同时作用在图片和预览层最外侧,请使用 classNames.root 替换string-
styles自定义语义化结构样式Record<SemanticDOM, string>-
scaleStep1 + scaleStep 为缩放放大的每步倍数number0.5
toolbarRender自定义工具栏,请使用 actionsRender 替换(originalNode: React.ReactElement, info: ToolbarRenderInfoType) => React.ReactNode-
visible是否显示,请使用 open 替换boolean-
onOpenChange预览打开状态变化回调,额外携带当前预览图索引(visible: boolean, info: { current: number }) => void-
onChange切换预览图的回调(current: number, prevCurrent: number) => void-
onTransform预览图 transform 变化的回调{ transform: TransformType, action: TransformAction }-
onVisibleChange当 visible 发生改变时的回调,请使用 onOpenChange 替换(visible: boolean, prevVisible: boolean, current: number) => void-

Interface

TransformType

typescript
{
x: number;
y: number;
rotate: number;
scale: number;
flipX: boolean;
flipY: boolean;
}

TransformAction

typescript
type TransformAction =
| 'flipY'
| 'flipX'
| 'rotateLeft'
| 'rotateRight'
| 'zoomIn'
| 'zoomOut'
| 'close'
| 'prev'
| 'next'
| 'wheel'
| 'doubleClick'
| 'move'
| 'dragRebound'
| 'reset';

ToolbarRenderInfoType

typescript
{
icons: {
flipYIcon: React.ReactNode;
flipXIcon: React.ReactNode;
rotateLeftIcon: React.ReactNode;
rotateRightIcon: React.ReactNode;
zoomOutIcon: React.ReactNode;
zoomInIcon: React.ReactNode;
};
actions: {
onActive?: (index: number) => void; // 5.21.0 之后支持
onFlipY: () => void;
onFlipX: () => void;
onRotateLeft: () => void;
onRotateRight: () => void;
onZoomOut: () => void;
onZoomIn: () => void;
onReset: () => void; // 5.17.3 之后支持
onClose: () => void;
};
transform: TransformType,
current: number;
total: number;
image: ImgInfo
}

ImgInfo

typescript
{
url: string;
alt: string;
width: string | number;
height: string | number;
}

CoverConfig

typescript
type CoverConfig = {
coverNode?: React.ReactNode; // 自定义遮罩元素
placement?: 'top' | 'bottom' | 'center'; // 设置预览遮罩显示的位置
};

Semantic DOM

  • root
    根元素,设置相对定位和行内块布局样式
  • image
    图片元素,设置宽度、高度和垂直对齐样式
  • cover
    悬浮图片显示的提示元素,设置绝对定位、背景色、透明度和过渡动画样式
  • popup.root
    预览根元素,设置固定定位、层级和背景遮罩样式
  • popup.mask
    预览遮罩元素,设置绝对定位和半透明背景样式
  • popup.body
    预览内容元素,设置flex布局、居中对齐和指针事件样式
  • popup.footer
    预览页脚元素,设置绝对定位、居中布局和底部操作区域样式
  • popup.actions
    预览操作组元素,设置flex布局、背景色、圆角和操作按钮样式

主题变量(Design Token)

组件 Token如何定制?
Token 名称描述类型默认值
previewOperationColor预览操作图标颜色stringrgba(255,255,255,0.65)
previewOperationColorDisabled预览操作图标禁用颜色stringrgba(255,255,255,0.25)
previewOperationHoverColor预览操作图标悬浮颜色stringrgba(255,255,255,0.85)
previewOperationSize预览操作图标大小number18
zIndexPopup预览浮层 z-indexnumber1080
全局 Token如何定制?
basic
基本用法

单击图像可以放大显示。

CodeSandbox Icon
Hitu Icon
codepen icon
External Link Icon
Expand Icon
basic image
容错处理

加载失败显示图像占位符。

CodeSandbox Icon
codepen icon
External Link Icon
Expand Icon
basic image
placeholder image
渐进加载

大图使用 placeholder 渐进加载。

CodeSandbox Icon
Hitu Icon
codepen icon
External Link Icon
Expand Icon
svg image
svg image
多张图片预览

点击左右切换按钮可以预览多张图片。

CodeSandbox Icon
Hitu Icon
codepen icon
External Link Icon
Expand Icon
webp image
相册模式

从一张图片点开相册。

CodeSandbox Icon
Hitu Icon
codepen icon
External Link Icon
Expand Icon
basic image
自定义预览图片

可以设置不同的预览图片。

CodeSandbox Icon
Hitu Icon
codepen icon
External Link Icon
Expand Icon
scaleStep:

basic image
受控的预览

可以使预览受控。

CodeSandbox Icon
Hitu Icon
codepen icon
External Link Icon
Expand Icon
image-0
image-1
自定义工具栏

可以自定义工具栏并添加下载原图或翻转旋转后图片的按钮。

CodeSandbox Icon
Hitu Icon
codepen icon
External Link Icon
Expand Icon
basic image
自定义预览内容

可以自定义预览内容。

CodeSandbox Icon
Hitu Icon
codepen icon
External Link Icon
Expand Icon
Default blur
Default blur
Dimmed mask
Dimmed mask
No mask
No mask
预览遮罩

遮罩效果,默认 blur。

CodeSandbox Icon
Hitu Icon
codepen icon
External Link Icon
Expand Icon
示例图片
示例图片
自定义语义结构的样式和类

通过 classNames 和 styles 传入对象/函数可以自定义 Image 的语义化结构样式。

CodeSandbox Icon
Hitu Icon
codepen icon
External Link Icon
Expand Icon
6.0.0
嵌套

嵌套在弹框当中使用

CodeSandbox Icon
Hitu Icon
codepen icon
External Link Icon
Expand Icon
Hitu Icon