# Image

图片懒加载

设置 lazy属性来开启图片懒加载,需要搭配 vue-lazyload 组件使用。

# 基础渲染

基础用法与原生 img 标签一致,可以设置 srcwidthheightalt 等原生属性。

<template>
  <d-image
    src="https://dcb-resource.gogpay.cn/duoduo-warehouse/png/8656bf02dc494689848e35e55ef2032f.png"
    :height="200"
  >
  </d-image>
</template>

<script>
  export default {
    data() {
      return {};
    },
    methods: {},
  };
</script>

# 填充模式

通过 fit 属性可以设置图片填充模式,等同于原生的 object-fit 属性,可选值见下方表格。

<template>
  <d-image
    src="https://dcb-resource.gogpay.cn/duoduo-warehouse/png/8656bf02dc494689848e35e55ef2032f.png"
    fit="contain"
    :height="200"
  >
  </d-image>
</template>

<script>
  export default {
    data() {
      return {};
    },
    methods: {},
  };
</script>

# 图片位置

通过 position 属性可以设置图片位置,结合 fit 属性使用,等同于原生的 object-position 属性。

<template>
  <d-image
    src="https://dcb-resource.gogpay.cn/duoduo-warehouse/png/8656bf02dc494689848e35e55ef2032f.png"
    fit="contain"
    position="left left"
    :height="200"
  >
  </d-image>
</template>

<script>
  export default {
    data() {
      return {};
    },
    methods: {},
  };
</script>

# 圆形图片

通过 round 属性可以设置图片变圆,注意当图片宽高不相等且 fitcontainscale-down 时,将无法填充一个完整的圆形。

<template>
  <d-image
    src="https://dcb-resource.gogpay.cn/duoduo-warehouse/png/8656bf02dc494689848e35e55ef2032f.png"
    round
    :width="200"
    :height="200"
  >
  </d-image>
</template>

<script>
  export default {
    data() {
      return {};
    },
    methods: {},
  };
</script>

# 加载中提示

提供了默认的加载中提示,支持通过 loading 插槽自定义内容。

默认

自定义提示

<template>
  <div>
    <d-image
      src="https://dcb-resource.gogpay.cn/duoduo-warehouse/png/8656bf02dc494689848e35e55ef2032f.png"
      :height="200"
    >
      <template v-slot:loading></template>
    </d-image>
    <p style="text-align: center; margin: 0">默认</p>
    <d-image
      src="https://dcb-resource.gogpay.cn/duoduo-warehouse/png/8656bf02dc494689848e35e55ef2032f.png"
      :height="200"
    >
      <template v-slot:loading>
        <d-loading type="spinner"></d-loading>
      </template>
    </d-image>
    <p style="text-align: center; margin: 0">自定义提示</p>
  </div>
</template>

<script>
  export default {
    data() {
      return {};
    },
    methods: {},
  };
</script>

# 加载失败提示

提供了默认的加载失败提示,支持通过 error 插槽自定义内容。

默认

自定义提示

<template>
  <div>
    <d-image
      src="https://dcb-resource.gogpay.cn/duoduo-warehouse/png/8656bf02dc494689848e35e55ef2032f2.png"
      :height="200"
    >
      <template v-slot:error></template>
    </d-image>
    <p style="text-align: center; margin: 0">默认</p>
    <d-image
      src="https://dcb-resource.gogpay.cn/duoduo-warehouse/png/8656bf02dc494689848e35e55ef2032f2.png"
      :height="200"
    >
      <template v-slot:error>加载失败</template>
    </d-image>
    <p style="text-align: center; margin: 0">自定义提示</p>
  </div>
</template>

<script>
  export default {
    data() {
      return {};
    },
    methods: {},
  };
</script>

# # API

# # 属性

名称 说明 类型 默认值
src
图片链接 string
必填
transformWebP
转换webp格式 boolean true
position
图片位置,等同于原生的 object-position 属性,可选值为 top right bottom left 或 string string center
lazy
是否开启图片懒加载,须配合 vue-lazyload 组件使用 boolean false
fit
图片填充模式 string fill
alt
替代文本 string
width
宽度,默认单位为px number | string
height
高度,默认单位为px number | string
radius
圆角大小,默认单位为px number | string
round
是否显示为圆形,注意当图片宽高不相等且 fit 为 contain 或 scale-down 时,将无法填充一个完整的圆形。 boolean false
iconSize
加载图标和失败图片的大小 string 16px

# # 插槽

名称 说明 参数
loading 自定义加载中的提示内容
error 自定义加载失败时的提示内容

# # 事件

名称 说明 参数
error 点击图片时触发
click 图片加载失败时触发
名称 说明 类型
event event object
load 图片加载完毕时触发

# # 贡献者