# image
图片。
# 使用示例
扫码预览
用BoosHi扫码或PC端点击
<template>
<view class="demo-ui-page">
<view class="demo-title">image 图片</view>
<demo-cell title="网络图片" TBPadding="0">
<image style="width: 150px; height: 150px;" src="https://histatic.zhipin.com/front/images/hwP5vXLNdnbtQGLr1SrjVk_1366x768.jpeg" />
</demo-cell>
<demo-cell title="本地相对路径图片" TBPadding="0">
<image style="width: 150px; height: 150px;" src="../../../static/image/night.jpeg" />
</demo-cell>
<demo-cell title="裁剪方式" subTitle="mode=aspectFill(默认scaleToFill)" TBPadding="0">
<image style="width: 150px; height: 150px;" mode="aspectFill" src="https://histatic.zhipin.com/front/images/hwP5vXLNdnbtQGLr1SrjVk_1366x768.jpeg" />
</demo-cell>
</view>
</template>
<script>
export default {
}
</script>
<style>
</style>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
展开 刷新 关闭
# 属性说明
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
src | String | 图片资源地址 | |
mode | String | 'scaleToFill' | 图片裁剪、缩放的模式 |
@error | HandleEvent | 当错误发生时,发布到 AppService 的事件名,事件对象event.detail = {errMsg: 'something wrong'} | |
@load | HandleEvent | 当图片载入完毕时,发布到 AppService 的事件名,事件对象event.detail = {height:'图片高度px', width:'图片宽度px'} |
# 注意事项
<image>
组件默认宽度 320px、高度 240px- 页面结构复杂,css样式太多的情况,使用 image 可能导致样式生效较慢,出现 “闪一下” 的情况,此时设置
image{will-change: transform}
,可优化此问题。 - 对于 svg 格式的图片, 小程序上只支持网络地址。
- 对于 webp 图片, Android4以上(含)、iOS14以上(含)系统内置支持 webp,小程序才可以使用 webp;
src
仅支持相对路径、绝对路径,和 base64 码;
# src 传值说明
模式 | 举例值 | 说明 |
---|---|---|
网络地址 | https://www.xxxx.com/img/xxxx.png | 获取远程网络/CND 平台的 xxx 图片 |
相对路径 | /static/xxx.png | 获取项目根目录下的 static 文件夹下的 xxx 图片 |
相对路径 | ../static/xxx.png | 获取相对于当前文件的上级目录中 static 文件夹下的 xxx 图片 |
相对路径 | xxx.png 或 ./xxx.png | 获取当前目录下的 xxx 图片 |
base64 | data:image/png;base64,iVBORw...AAA | 使用 base64 编码的图片 |
注: 客户端 3.4 之前版本(基础库 1.0.2 以下)使用相对路径可能展示不出图片,可使用网络地址和 base64 代替
# mode 有效值
mode 有 14 种模式,其中 5 种是缩放模式,9 种是裁剪模式。
模式 | 值 | 说明 |
---|---|---|
缩放 | scaleToFill | 不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 image 元素 |
缩放 | aspectFit | 保持纵横比缩放图片,使图片的长边能完全显示出来。也就是说,可以完整地将图片显示出来。 |
缩放 | aspectFill | 保持纵横比缩放图片,只保证图片的短边能完全显示出来。也就是说,图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取。 |
缩放 | widthFix | 宽度不变,高度自动变化,保持原图宽高比不变 |
缩放 | heightFix | 高度不变,宽度自动变化,保持原图宽高比不变 |
裁剪 | top | 不缩放图片,只显示图片的顶部区域 |
裁剪 | bottom | 不缩放图片,只显示图片的底部区域 |
裁剪 | center | 不缩放图片,只显示图片的中间区域 |
裁剪 | left | 不缩放图片,只显示图片的左边区域 |
裁剪 | right | 不缩放图片,只显示图片的右边区域 |
裁剪 | top left | 不缩放图片,只显示图片的左上边区域 |
裁剪 | top right | 不缩放图片,只显示图片的右上边区域 |
裁剪 | bottom left | 不缩放图片,只显示图片的左下边区域 |
裁剪 | bottom right | 不缩放图片,只显示图片的右下边区域 |
# 示例代码
原图
scaleToFill:不保持纵横比缩放图片,使图片完全适应
aspectFit:保持纵横比缩放图片,使图片的长边能完全显示出来
aspectFill:保持纵横比缩放图片,只保证图片的短边能完全显示出来
top:不缩放图片,只显示图片的顶部区域
bottom:不缩放图片,只显示图片的底部区域
center:不缩放图片,只显示图片的中间区域
left:不缩放图片,只显示图片的左边区域
right:不缩放图片,只显示图片的右边边区域
top left:不缩放图片,只显示图片的左上边区域
top right:不缩放图片,只显示图片的右上边区域
bottom left:不缩放图片,只显示图片的左下边区域
bottom right:不缩放图片,只显示图片的右下边区域