Image 图片

import { TaImage, TaCol, TaRow, TaGroup } from '@/index'

const imageUrl = 'https://cdn.fox2.cn/vfox/swiper/center-2.jpg'

export default function ExpImage() {
  return (
    <>
      <TaGroup title="基础用法">
        <div className="exp-image-flex">
          <TaRow gutter={[16, 16]}>
            <TaCol span="8">
              <TaImage
                className="exp-image-image"
                src={imageUrl}
                aspectRatio={1}
              ></TaImage>
            </TaCol>
          </TaRow>
        </div>
      </TaGroup>
      <TaGroup title="填充模式">
        <div className="exp-image-flex">
          <TaRow gutter={[16, 16]}>
            <TaCol span="8">
              <TaImage
                className="exp-image-image"
                src={imageUrl}
                mode="scaleToFill"
                aspectRatio={1}
              ></TaImage>
              <span className="exp-image-text">scaleToFill</span>
            </TaCol>
            <TaCol span="8">
              <TaImage
                className="exp-image-image"
                src={imageUrl}
                mode="aspectFit"
                aspectRatio={1}
              ></TaImage>
              <span className="exp-image-text">aspectFit</span>
            </TaCol>
            <TaCol span="8">
              <TaImage
                className="exp-image-image"
                src={imageUrl}
                mode="aspectFill"
                aspectRatio={1}
              ></TaImage>
              <span className="exp-image-text">aspectFill</span>
            </TaCol>
            <TaCol span="8">
              <TaImage
                className="exp-image-image"
                src={imageUrl}
                mode="widthFix"
                aspectRatio={1}
              ></TaImage>
              <span className="exp-image-text">widthFix</span>
            </TaCol>
            <TaCol span="8">
              <TaImage
                className="exp-image-image"
                src={imageUrl}
                mode="top"
                aspectRatio={1}
              ></TaImage>
              <span className="exp-image-text">top</span>
            </TaCol>
            <TaCol span="8">
              <TaImage
                className="exp-image-image"
                src={imageUrl}
                mode="bottom"
                aspectRatio={1}
              ></TaImage>
              <span className="exp-image-text">bottom</span>
            </TaCol>
            <TaCol span="8">
              <TaImage
                className="exp-image-image"
                src={imageUrl}
                mode="left"
                aspectRatio={1}
              ></TaImage>
              <span className="exp-image-text">left</span>
            </TaCol>
            <TaCol span="8">
              <TaImage
                className="exp-image-image"
                src={imageUrl}
                mode="right"
                aspectRatio={1}
              ></TaImage>
              <span className="exp-image-text">right</span>
            </TaCol>
            <TaCol span="8">
              <TaImage
                className="exp-image-image"
                src={imageUrl}
                mode="top left"
                aspectRatio={1}
              ></TaImage>
              <span className="exp-image-text">top left</span>
            </TaCol>
            <TaCol span="8">
              <TaImage
                className="exp-image-image"
                src={imageUrl}
                mode="top right"
                aspectRatio={1}
              ></TaImage>
              <span className="exp-image-text">top right</span>
            </TaCol>
            <TaCol span="8">
              <TaImage
                className="exp-image-image"
                src={imageUrl}
                mode="bottom left"
                aspectRatio={1}
              ></TaImage>
              <span className="exp-image-text">bottom left</span>
            </TaCol>
            <TaCol span="8">
              <TaImage
                className="exp-image-image"
                src={imageUrl}
                mode="bottom right"
                aspectRatio={1}
              ></TaImage>
              <span className="exp-image-text">bottom right</span>
            </TaCol>
          </TaRow>
        </div>
      </TaGroup>
      <TaGroup title="设置宽高比(设置后高度按比例缩放)">
        <div className="exp-image-flex">
          <TaRow gutter={[16, 16]} align="bottom">
            <TaCol span="8">
              <TaImage
                className="exp-image-image"
                src={imageUrl}
                aspectRatio={1}
              ></TaImage>
              <span className="exp-image-text">aspect-ratio=1</span>
            </TaCol>
            <TaCol span="8">
              <TaImage
                className="exp-image-image"
                src={imageUrl}
                aspectRatio={1.5}
              ></TaImage>
              <span className="exp-image-text">aspect-ratio=1.5</span>
            </TaCol>
            <TaCol span="8">
              <TaImage
                className="exp-image-image"
                src={imageUrl}
                aspectRatio={0.5}
              ></TaImage>
              <span className="exp-image-text">aspect-ratio=0.5</span>
            </TaCol>
          </TaRow>
        </div>
      </TaGroup>
      <TaGroup title="加载/加载错误">
        <div className="exp-image-flex">
          <TaRow gutter={[16, 16]}>
            <TaCol span="8">
              <TaImage className="exp-image-image" aspectRatio={1}></TaImage>
            </TaCol>
            <TaCol span="8">
              <TaImage
                className="exp-image-image"
                src="error"
                aspectRatio={1}
              ></TaImage>
            </TaCol>
          </TaRow>
        </div>
      </TaGroup>
      <TaGroup title="懒加载">
        <div className="exp-image-flex">
          <TaRow gutter={[16, 16]}>
            <TaCol span="8">
              <TaImage
                className="exp-image-image"
                src={imageUrl}
                aspectRatio={1}
                lazyLoad
              ></TaImage>
            </TaCol>
          </TaRow>
        </div>
      </TaGroup>
    </>
  )
}

Import

import { TaImage } from 'tantalum-ui-mobile-react'

具体的引入方式可以参考引入组件

Import Type

组件导出的类型定义:

import type { ImageMode, ImageOnLoad } from 'tantalum-ui-mobile-react'

Props

属性类型默认值必填说明
srcstring图片资源地址
modeImageMode'scaleToFill'图片裁剪、缩放的模式
aspectRatioboolean限制宽高比,设置了该项,只要宽度设定,高度会按造比例显示,如 1 为正方形
lazyLoadbooleanfalse图片懒加载,在即将进入一定范围(preload=1.3)时才开始加载

ImageMode 的合法值

属性说明
scaleToFill缩放模式,不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 image 元素
aspectFit缩放模式,保持纵横比缩放图片,使图片的长边能完全显示出来。也就是说,可以完整地将图片显示出来。
aspectFill缩放模式,保持纵横比缩放图片,只保证图片的短边能完全显示出来。也就是说,图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取。
widthFix缩放模式,宽度不变,高度自动变化,保持原图宽高比不变
top裁剪模式,不缩放图片,只显示图片的顶部区域
bottom裁剪模式,不缩放图片,只显示图片的底部区域
center裁剪模式,不缩放图片,只显示图片的中间区域
left裁剪模式,不缩放图片,只显示图片的左边区域
right裁剪模式,不缩放图片,只显示图片的右边区域
top left裁剪模式,不缩放图片,只显示图片的左上边区域
top right裁剪模式,不缩放图片,只显示图片的右上边区域
bottom left裁剪模式,不缩放图片,只显示图片的左下边区域
bottom right裁剪模式,不缩放图片,只显示图片的右下边区域

Events

事件描述回调函数参数TypeScript 函数
onError当错误发生时触发e: Error
onLoad当图片载入完毕时触发payload: { height: number, width: number, src: string }ImageOnLoad