codecamp

Vant Image 图片

介绍

增强版的 img 标签,提供多种图片填充模式,支持图片懒加载、加载中提示、加载失败提示

引入

import Vue from 'vue';
import { Image } from 'vant';

Vue.use(Image);

代码演示

基础用法

基础用法与原生img标签一致,可以设置src、width、height、alt等原生属性

<van-image
  width="100"
  height="100"
  src="https://img.yzcdn.cn/vant/cat.jpeg"
/>

填充模式

通过fit属性可以设置图片填充模式,可选值见下方表格

<van-image
  width="10rem"
  height="10rem"
  fit="contain"
  src="https://img.yzcdn.cn/vant/cat.jpeg"
/>

圆形图片

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

<van-image
  round
  width="10rem"
  height="10rem"
  src="https://img.yzcdn.cn/vant/cat.jpeg"
/>

图片懒加载

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

<van-image
  width="100"
  height="100"
  lazy-load
  src="https://img.yzcdn.cn/vant/cat.jpeg"
/>
import Vue from 'vue';
import { Lazyload } from 'vant';

Vue.use(Lazyload);

加载中提示

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

<van-image src="https://img.yzcdn.cn/vant/cat.jpeg">
  <template v-slot:loading>
    <van-loading type="spinner" size="20" />
  </template>
</van-image>

加载失败提示

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

<van-image src="https://img.yzcdn.cn/vant/cat.jpeg">
  <template v-slot:error>加载失败</template>
</van-image>

API

Props

参数说明类型默认值
src图片链接string-
fit图片填充模式stringfill
alt替代文本string-
width宽度,默认单位为pxnumber | string-
height高度,默认单位为pxnumber | string-
radius v2.1.6圆角大小,默认单位为pxnumber | string0
round是否显示为圆形booleanfalse
lazy-load是否开启图片懒加载,须配合 Lazyload 组件使用booleanfalse
show-error v2.0.9是否展示图片加载失败提示booleantrue
show-loading v2.0.9是否展示图片加载中提示booleantrue
error-icon v2.4.2失败时提示的 图标名称 或图片链接stringwarning-o
loading-icon v2.4.2加载时提示的 图标名称 或图片链接stringphoto-o

图片填充模式

名称含义
contain保持宽高缩放图片,使图片的长边能完全显示出来
cover保持宽高缩放图片,使图片的短边能完全显示出来,裁剪长边
fill拉伸图片,使图片填满元素
none保持图片原有尺寸
scale-downnonecontain中较小的一个

Events

事件名说明回调参数
click点击图片时触发event: Event
load图片加载完毕时触发-
error图片加载失败时触发-

Slots

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


Vant Icon 图标
Vant Layout 布局
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }