1.0.0 • Published 4 years ago

wkiwi-lazy-img v1.0.0

Weekly downloads
-
License
ISC
Repository
-
Last release
4 years ago

wkiwi-lazy-img

uni-app框架 图片懒加载自定义组件 主要兼容微信小程序 可配置占位图以及图片加载失败占位图

背景

​ 小程序原生图片组件 image 提供的图片懒加载功能 lazy-load 限制过多,只针对 page 与 scroll-view 下的 image 有效。

实现思路

使用 uni.createSelectorQuery() 查找节点获取图片距离顶部距离,与页面滚动距离进行比较

使用方法

  1. 安装组件
npm install --save wkiwi-lazy-img
  1. 在页面引入组件 wkiwi-lazy-img
import lazyImg from "../wkiwi-lazy-img/wkiwi-lazy-img.vue";
  1. WXML 文件中引用 wkiwi-lazy-img

    <wkiwi-lazy-imgs  
    :showMenuByLongpress="true" 
    :scrollTop="scrollTop" 
    :index="index"  
    :src="item.avatar" 
    :windowHeight="windowHeight" 
    :distance="windowHeight" 
    mode="aspectFill" 
    placeholder="/static/image/common/lottery-default.png" 
    ></wkiwi-lazy-imgs>

    wkiwi-lazy-img 的属性介绍如下:

    字段名类型必填描述
    indexNumber下标
    scrollTopNumber滚动到顶部距离
    windowHeightNumber屏幕高度
    distanceNumber距离底部多少 PX 开始预加载
    srcString图片链接
    placeholderString占位图片链接
    modeString请参考 image 组件 mode 属性
    webpNumber请参考 image 组件 webp 属性
    showMenuByLongpressBoolean请参考 image 组件 show-menu-by-longpress 属性
    stylesString设置图片样式
  2. 更新页面滚动顶部距离

onPageScroll: function(res) { //页面滚动监听
  let _this = this;
  clearTimeout(this.pageScrollTimeoutId);
  this.pageScrollTimeoutId = setTimeout(function() { //节流
    _this.scrollTop = res.scrollTop
  }, 30);
},

wkiwi-lazy-image 外部样式类

image-class, image-container-class