欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

微信小程序媒体组件-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

  1. tip:image组件默认宽度300px、高度240px
  2. tip:image组件中二维码/小程序码图片不支持长按识别。仅在wx.previewImage中支持长按识别

示例

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

<!-- 图片
      懒加载
      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);
  }

})