开发中,经常会遇到图片大小不一,同一个页面中展示出来,就会非常的丑。uniapp中image组件提供mode属性,通过给mode属性配置不同的属性,可以实现不同的效果。
// 宽度不变,高度自动变化
<image mode="widthFix" class="baImg" src="@/static/image/bg.png"></image>
// 高度不变,宽度自动变化
<image mode="heightFix" class="baImg" src="@/static/image/bg.png"></image>
// 保持纵横比缩放图片,使图片的长边能完全显示出来
<image mode="aspectFit" class="baImg" src="@/static/image/bg.png"></image>
// 保持纵横比缩放图片,只保证图片的短边能完全显示出来
<image mode="aspectFill" class="baImg" src="@/static/image/bg.png"></image>
mode 属性还有很多参数,如下:
参数 | 使用效果 |
---|---|
widthFix | 宽度不变,高度自动变化,保持原图宽高比不变 |
heightFix | 高度不变,宽度自动变化,保持原图宽高比不变 |
aspectFit | 保持纵横比缩放图片,使图片的长边能完全显示出来 |
aspectFill | 保持纵横比缩放图片,只保证图片的短边能完全显示出来 |
scaleToFill | 不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 image 元素 |
top | 不缩放图片,只显示图片的顶部区域 |
bottom | 不缩放图片,只显示图片的底部区域 |
center | 不缩放图片,只显示图片的中间区域 |
left | 不缩放图片,只显示图片的左边区域 |
right | 不缩放图片,只显示图片的右边区域 |
top left | 不缩放图片,只显示图片的左上边区域 |
top right | 不缩放图片,只显示图片的右上边区域 |
bottom left | 不缩放图片,只显示图片的左下边区域 |
bottom right | 不缩放图片,只显示图片的右下边区域 |