🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
> 图片也是我们最常见的组建之一,其中图片的mode属性选项较多,最为常用的为mode="aspectFill" ## 属性说明 | 属性名 | 类型 | 默认值 | 说明 | 平台差异说明 | | --- | --- | --- | --- | --- | | src | String | | 图片资源地址 | | | mode | String | 'scaleToFill' | 图片裁剪、缩放的模式 | | | lazy-load | Boolean | false | 图片懒加载。只针对page与scroll-view下的image有效 | 微信小程序、App、百度小程序、字节跳动小程序 | | fade-show | Boolean | true | 图片显示动画效果 | 仅App-nvue 2.3.4+ Android有效 | | webp | boolean | false | 默认不解析 webP 格式,只支持网络资源 | 微信小程序2.9.0 | | show-menu-by-longpress | boolean | false | 开启长按图片显示识别小程序码菜单 | 微信小程序2.7.0 | | @error | HandleEvent | | 当错误发生时,发布到 AppService 的事件名,事件对象event.detail = {errMsg: 'something wrong'} | | | @load | HandleEvent | | 当图片载入完毕时,发布到 AppService 的事件名,事件对象event.detail = {height:'图片高度px', width:'图片宽度px'} | | ## mode 有效值 mode 有 13 种模式,其中 4 种是缩放模式,9 种是裁剪模式。 | 模式 | 值 | 说明 | | --- | --- | --- | | 缩放 | scaleToFill | 不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 image 元素 | | 缩放 | aspectFit | 保持纵横比缩放图片,使图片的长边能完全显示出来。也就是说,可以完整地将图片显示出来。 | | 缩放 | aspectFill | 保持纵横比缩放图片,只保证图片的短边能完全显示出来。也就是说,图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取。 | | 缩放 | widthFix | 宽度不变,高度自动变化,保持原图宽高比不变 | | 缩放 | heightFix | 高度不变,宽度自动变化,保持原图宽高比不变**App 和 H5 平台 2.8.9+ 支持、微信小程序需要基础库 2.10.3** | | 裁剪 | top | 不缩放图片,只显示图片的顶部区域 | | 裁剪 | bottom | 不缩放图片,只显示图片的底部区域 | | 裁剪 | center | 不缩放图片,只显示图片的中间区域 | | 裁剪 | left | 不缩放图片,只显示图片的左边区域 | | 裁剪 | right | 不缩放图片,只显示图片的右边区域 | | 裁剪 | top left | 不缩放图片,只显示图片的左上边区域 | | 裁剪 | top right | 不缩放图片,只显示图片的右上边区域 | | 裁剪 | bottom left | 不缩放图片,只显示图片的左下边区域 | | 裁剪 | bottom right | 不缩放图片,只显示图片的右下边区域 | ## 代码示例 ~~~ <template> <view class="page"> <view class="image-list"> <view class="image-item" v-for="(item,index) in array" :key="index"> <view class="image-content"> <image style="width: 200px; height: 200px; background-color: #eeeeee;" :mode="item.mode" :src="src" @error="imageError"></image> </view> <view class="image-title">{{item.text}}</view> </view> </view> </view> </template> <script> export default { data() { return { array: [{ mode: 'scaleToFill', text: 'scaleToFill:不保持纵横比缩放图片,使图片完全适应' }, { mode: 'aspectFit', text: 'aspectFit:保持纵横比缩放图片,使图片的长边能完全显示出来' }, { mode: 'aspectFill', text: 'aspectFill:保持纵横比缩放图片,只保证图片的短边能完全显示出来' }, { mode: 'top', text: 'top:不缩放图片,只显示图片的顶部区域' }, { mode: 'bottom', text: 'bottom:不缩放图片,只显示图片的底部区域' }, { mode: 'center', text: 'center:不缩放图片,只显示图片的中间区域' }, { mode: 'left', text: 'left:不缩放图片,只显示图片的左边区域' }, { mode: 'right', text: 'right:不缩放图片,只显示图片的右边边区域' }, { mode: 'top left', text: 'top left:不缩放图片,只显示图片的左上边区域' }, { mode: 'top right', text: 'top right:不缩放图片,只显示图片的右上边区域' }, { mode: 'bottom left', text: 'bottom left:不缩放图片,只显示图片的左下边区域' }, { mode: 'bottom right', text: 'bottom right:不缩放图片,只显示图片的右下边区域' }], src: 'https://img-cdn-qiniu.dcloud.net.cn/uniapp/images/shuijiao.jpg' } }, methods: { imageError: function(e) { console.error('image发生error事件,携带值为' + e.detail.errMsg) } } } </script> ~~~ > 原图 ![](https://img.kancloud.cn/db/e8/dbe8fb9935d36a16c81c3b5ef8ceaaf4_500x333.png) > scaleToFill:不保持纵横比缩放图片,使图片完全适应 ![](https://img.kancloud.cn/da/58/da58b2e53abe70305572dbd4bde21acd_200x200.png) > aspectFit:保持纵横比缩放图片,使图片的长边能完全显示出来 ![](https://img.kancloud.cn/f6/97/f697403685a430496bb8115b271b851a_200x200.png) > aspectFill:保持纵横比缩放图片,只保证图片的短边能完全显示出来 ![](https://img.kancloud.cn/ca/35/ca35b8961e20a226bdb84bcac5cf3ad4_200x200.png) > top:不缩放图片,只显示图片的顶部区域 ![](https://img.kancloud.cn/8e/42/8e42b5d24a3bf6541ac0f95ad745938a_200x200.png) > bottom:不缩放图片,只显示图片的底部区域 ![](https://img.kancloud.cn/4f/24/4f24fed061dbbbe78e1342515fd3e35d_200x200.png) > center:不缩放图片,只显示图片的中间区域 ![](https://img.kancloud.cn/c1/8e/c18e1720ff0b811fb33b60196aad344e_200x200.png) > left:不缩放图片,只显示图片的左边区域 ![](https://img.kancloud.cn/76/c3/76c32d59b92bd2f2951272417c1ba991_200x200.png) > right:不缩放图片,只显示图片的右边边区域 ![](https://img.kancloud.cn/21/18/2118fe6fdd0060e5632dec4e07aab6d5_200x200.png) > top left:不缩放图片,只显示图片的左上边区域 ![](https://img.kancloud.cn/c3/97/c3977ecb55a44cea4cd1381e727c16da_200x200.png) > top right:不缩放图片,只显示图片的右上边区域 ![](https://img.kancloud.cn/e1/5b/e15bc47cb53df2116b885ac7aa46f321_200x200.png) > bottom left:不缩放图片,只显示图片的左下边区域 ![](https://img.kancloud.cn/60/47/60472e7f141bd6467887f4f3dd191e41_200x200.png) > bottom right:不缩放图片,只显示图片的右下边区域 ![](https://img.kancloud.cn/93/a1/93a1c7799f3adca29ee47816d896a847_200x200.png)