微信小程序媒体组件-image图片懒加载效果
程序员文章站
2022-06-14 21:29:25
...
image
基础库 1.0.0 开始支持,低版本需做兼容处理。
图片。支持 JPG、PNG、SVG、WEBP、GIF 等格式,2.3.0 起支持云文件ID。
属性 | 类型 | 默认值 | 必填 | 说明 | 最低版本 |
---|---|---|---|---|---|
src | string | 否 | 图片资源地址 | 1.0.0 | |
mode | string | scaleToFill | 否 | 图片裁剪、缩放的模式 | 1.0.0 |
webp | boolean | false | 否 | 默认不解析 webP 格式,只支持网络资源 | 2.9.0 |
lazy-load | boolean | false | 否 | 图片懒加载,在即将进入一定范围(上下三屏)时才开始加载 | 1.5.0 |
show-menu-by-longpress | boolean | false | 否 | 开启长按图片显示识别小程序码菜单 | 2.7.0 |
binderror | eventhandle | 否 | 当错误发生时触发,event.detail = {errMsg} | 1.0.0 | |
bindload | eventhandle | 否 | 当图片载入完毕时触发,event.detail = {height, width} | 1.0.0 |
mode 的合法值
值 | 说明 | 最低版本 |
---|---|---|
scaleToFill | 缩放模式,不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 image 元素 | |
aspectFit | 缩放模式,保持纵横比缩放图片,使图片的长边能完全显示出来。也就是说,可以完整地将图片显示出来。 | |
aspectFill | 缩放模式,保持纵横比缩放图片,只保证图片的短边能完全显示出来。也就是说,图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取。 | |
widthFix | 缩放模式,宽度不变,高度自动变化,保持原图宽高比不变 | |
heightFix | 缩放模式,高度不变,宽度自动变化,保持原图宽高比不变 | 2.10.3 |
top | 裁剪模式,不缩放图片,只显示图片的顶部区域 | |
bottom | 裁剪模式,不缩放图片,只显示图片的底部区域 | |
center | 裁剪模式,不缩放图片,只显示图片的中间区域 | |
left | 裁剪模式,不缩放图片,只显示图片的左边区域 | |
right | 裁剪模式,不缩放图片,只显示图片的右边区域 | |
top left | 裁剪模式,不缩放图片,只显示图片的左上边区域 | |
top right | 裁剪模式,不缩放图片,只显示图片的右上边区域 | |
bottom left | 裁剪模式,不缩放图片,只显示图片的左下边区域 | |
bottom right | 裁剪模式,不缩放图片,只显示图片的右下边区域 |
Bug & Tip
-
tip
:image组件默认宽度300px、高度240px -
tip
:image组件中二维码/小程序码图片不支持长按识别。仅在wx.previewImage中支持长按识别
示例
<!-- 图片
懒加载
src
lazy-load 是否懒加载 图片默认加载三屏
show-menu-by-longpress 是否展示识别小程序菜单
-->
<image src="/static/img/01.gif" bindload="imgload"/>
<!-- 加载出错 -->
<!-- <image src="/static/img/022.gif" binderror="imgerror"/> -->
<image src="/static/img/02.gif" show-menu-by-longpress />
<image src="/static/img/01.gif" lazy-load bindload="numadd" />
<image src="/static/img/02.gif" lazy-load bindload="numadd" />
<image src="/static/img/03.gif" lazy-load bindload="numadd" />
<image src="/static/img/01.gif" lazy-load bindload="numadd" />
<image src="/static/img/02.gif" lazy-load bindload="numadd" />
<image src="/static/img/03.gif" lazy-load bindload="numadd" />
<image src="/static/img/01.gif" lazy-load bindload="numadd" />
<image src="/static/img/02.gif" lazy-load bindload="numadd" />
<image src="/static/img/03.gif" lazy-load bindload="numadd" />
<image src="/static/img/01.gif" lazy-load bindload="numadd" />
<image src="/static/img/02.gif" lazy-load bindload="numadd" />
<image src="/static/img/03.gif" lazy-load bindload="numadd" />
<image src="/static/img/01.gif" lazy-load bindload="numadd" />
<image src="/static/img/02.gif" lazy-load bindload="numadd" />
<image src="/static/img/03.gif" lazy-load bindload="numadd" />
// pages/06image/06image.js
let num = 0;
Page({
/**
* 页面的初始数据
*/
data: {
},
imgload(e){
console.log(e,'img实际大小')
},
imgerror(e){
console.log(e,'图片加载失败')
},
// 记录图片加载次数
numadd(){
num++;
console.log('图片加载次数',num);
}
})
上一篇: php的发展前景好吗
下一篇: 小程序笔记 -- 媒体组件audio