微信小程序媒体组件-image图片懒加载效果

image

基础库 1.0.0 开始支持,低版本需做兼容处理

图片。支持 JPG、PNG、SVG、WEBP、GIF 等格式,2.3.0 起支持云文件ID。

属性类型默认值必填说明最低版本
srcstring 图片资源地址1.0.0
modestringscaleToFill图片裁剪、缩放的模式1.0.0
webpbooleanfalse默认不解析 webP 格式,只支持网络资源2.9.0
lazy-loadbooleanfalse图片懒加载,在即将进入一定范围(上下三屏)时才开始加载1.5.0
show-menu-by-longpressbooleanfalse开启长按图片显示识别小程序码菜单2.7.0
binderroreventhandle 当错误发生时触发,event.detail = {errMsg}1.0.0
bindloadeventhandle 当图片载入完毕时触发,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

  1. tip:image组件默认宽度300px、高度240px
  2. 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);
  }

})

 

 

posted @ 2023-05-24 23:10  JackieDYH  阅读(139)  评论(0编辑  收藏  举报  来源