uni-app的image标签是用于显示图片的组件,而mode属性则用于设置图片的显示模式,这个也是传统 web 开发中的 <img>标签中没有的
。
mode属性有以下几种取值:
- aspectFit:按照原始比例缩放图片,使图片的长边能完全显示在容器内,可能会露出空白区域。
- aspectFill:按照原始比例缩放图片,使图片的短边能完全填充容器,可能会裁剪掉部分图片。
- widthFix:宽度不变,高度自动变化,保持原始宽高比。
- heightFix:高度不变,宽度自动变化,保持原始宽高比。
- scaleToFill:拉伸图片以填满容器,不保持原始宽高比,可能导致图片变形。
- fitCenter:先按照aspectFit的方式进行缩放,之后居中显示图片,可能会露出空白区域。
- top:将图片的顶部对齐到容器的顶部。
- bottom:将图片的底部对齐到容器的底部。
- left:将图片的左边对齐到容器的左边。
- right:将图片的右边对齐到容器的右边。
- topLeft:将图片的左上角对齐到容器的左上角。
- topRight:将图片的右上角对齐到容器的右上角。
- bottomLeft:将图片的左下角对齐到容器的左下角。
- bottomRight:将图片的右下角对齐到容器的右下角。
-
Uniapp 的
<image>
与传统 web 开发中的<img>
相比多了一个mode
属性,用来设置图片的裁剪、缩放模式。 -
在开发中尽量养成每一个
<image>
都设置mode
的习惯。可以规避掉很多 UI 显示异常的问题。 -
一般只需要使用
widthFix
、aspectFill
这两个属性即可应对绝大多数情况。即只需设置宽度自动撑起高度的图片用
widthFix
;需要固定尺寸设置宽高,并保持图片不被拉伸的图片用aspectFill
。例如:所有 icon、文章详情里、产品详情里的详情图一般会用
widthFix
,用户头像、缩略图一般会用aspectFill
。
lazy-load
- 图片懒加载,小程序支持,只针对 page 与 scroll-view 下的 image 有效。
通过设置mode属性,可以根据需求选择合适的图片显示效果。