vlist

功能描述

vlist是原生js实现的高性能虚拟列表,支持横向和纵向

依赖模块

快速使用

  1. <div class="list" id="list">
  2. <ul></ul>
  3. </div>
  1. var pageIndex = 0;
  2. new Vlist({
  3. container: document.querySelector("#list"),
  4. itemSize: 180,
  5. maxSize: document.documentElement.clientHeight,
  6. loadData: function () {
  7. pageIndex++;
  8. var data = mockData(pageIndex).data
  9. if (data && data.length > 0) {
  10. this.addData(data);
  11. } else {
  12. this.loadEnd()
  13. }
  14. },
  15. // initData: mockData(pageIndex).data,
  16. render: function (itemData, index) {
  17. return `
  18. <div class="item">
  19. <img src="https://img12.360buyimg.com/mobilecms/s372x372_${itemData.img}"/>
  20. <div class="right">
  21. <div class="title">${itemData.t}</div>
  22. <div class="price">¥${itemData.jp / 100}</div>
  23. <div class="buy">立即购买</div>
  24. </div>
  25. </div>
  26. `
  27. }
  28. });

配置项

direction

  • 类型:String
  • 取值:vertical | horizontal
  • 默认值:vertical
  • 作用:列表方向
  • 是否必传:是

    itemSize

  • 类型:Number

  • 默认值:0
  • 作用:项的宽度(高度)
  • 是否必传:是

    container

  • 类型:HTMLElement

  • 默认值:无
  • 作用:列表容器
  • 是否必传:是

    maxSize

  • 类型:Number

  • 默认值:文档的宽度(高度)
  • 作用:容器的最大显示宽度(高度)
  • 是否必传:否

    initData

  • 类型:Array

  • 默认值:空
  • 作用:初始数据
  • 是否必传:否

    loadData

  • 类型:Function

  • 默认值:空
  • 作用:到底自动触发函数
  • 是否必传:是

    render

  • 类型:Function

  • 默认值:空
  • 作用:项渲染函数
  • 是否必传:是

方法

addData

  • 作用:追加数据

    1. this.addData(data)

    reloadData

  • 作用:重新加载

  • 注意:调用之前,业务需要恢复初始状态

    1. this.reloadData(data)

    showLoading

  • 作用:显示加载中

    1. this.showLoading()

    closeLoading

  • 作用:关闭加载中

    1. this.closeLoading()

    loadEnd

  • 作用:加载结束

    1. this.loadEnd()

特别说明

更多配置和用法,请参考examples