热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

微信小程序懒加载

今天给大家带来小程序懒加载的办法,来提高页面的体验性。理念:加入滚动,当页面滚动的时候计算列表数据的高度来判断该区域数据图片是否加载显示1.首先我们要在wxml要显示的列表里加入滚动条<scro

今天给大家带来小程序懒加载的办法,来提高页面的体验性。

理念:加入滚动,当页面滚动的时候计算列表数据的高度来判断该区域数据图片是否加载显示

1.首先我们要在wxml要显示的列表里加入滚动条



然后。。。

wxml:



autoplay="{{autoplay}}" interval="{{interval}}" duration="{{duration}}" class="newCourse_bann">















店铺推荐








{{item.title}}



¥{{item.marketprice}}
淘宝价:{{item.productprice}}元









核心js代码:


//计算窗口高度
wx.getSystemInfo({
success: function(res) {
self.setData({
clientHeight: res.windowHeight
});
}
})

//高度算法 
var arr = [];
var length = Array.from(res.data.data).length;
var isD = length % 2 == 0 ? true : false ;
var arrHight = [];
for(var i = 0; i arr[i] = false;
arrHight[i] = Math.floor(i/2)*(320/750)*520;
for (var i = 0; i 

scroll: function(e){
var seeHeight = this.data.clientHeight; //可见区域高度
var arrHight = this.data.arrHight;
var event = e;
var scrollTop = event.detail.scrollTop;
var arr = this.data.arr;
// console.log(scrollTop)
for (var i = 0; i if (arrHight[i] if (arr[i] == false) {
arr[i] = true;
// arr[i*2] arr[i*2+1]
}
//n = i + 1;
}
//arr[i] = true;
}
this.setData({
arr : arr
})
}

完整js:

var app = getApp();
Page({
data: {
GZtate: true,
// 轮播
imgUrls: [
'/we7_wxappdemo/resource/images/lunbo1.jpg',
'/we7_wxappdemo/resource/images/lunbo2.jpg',
'/we7_wxappdemo/resource/images/lunbo3.jpg'
],
indicatorDots: false,
interval: 5000,
duration: 1000,
autoplay: true,
// over

list:[],

clientHeight:0, arr:[], arrHight:[]
},
onLoad: function (options) {
// 页面初始化 options为页面跳转所带来的参数
const self = this;
wx.getSystemInfo({
success: function (res) {
self.setData({
clientHeight: res.windowHeight
});
}
})
// console.log(options)
var tarrHight = [];
app.util.request({
'url': 'entry/wxapp/list',
data: {
category: options.category ? options.category : '',
},
'cachetime': '30',
success(res) {
//console.log(res);
self.setData({
list: res.data.data
})
//
var arr = [];
var length = Array.from(res.data.data).length;
var isD = length % 2 == 0 ? true : false;

for (var i = 0; i arr[i] = false;
tarrHight[i] = Math.floor(i / 2) * (320 / 750) * 520;
}

self.setData({
arr: arr,
list: Array.from(res.data.data),
arrHight: tarrHight
})
// console.log(self.data.arr)
//
},
})
for (var i = 0; i if (tarrHight[i] if (arr[i] == false) {
arr[i] = true;
}
}
}
// 上拉加载
//点击搜索按钮,触发事件
self.setData({
listPageNum: 1, //第一次加载,设置1
List: [], //放置返回数据的数组,设为空
isFromlist: true, //第一次加载,设置true
listLoading: true, //把"上拉加载"的变量设为true,显示
listLoadingComplete: false //把“没有数据”设为false,隐藏
})
self.fetchlist();

},
scroll: function (e) {
//console.log(this.data);
var seeHeight = this.data.clientHeight; //可见区域高度
var arrHight = this.data.arrHight;
var event = e;
var scrollTop = event.detail.scrollTop;
var arr = this.data.arr;
// console.log(scrollTop)
for (var i = 0; i if (arrHight[i] if (arr[i] == false) {
arr[i] = true;
// arr[i*2] arr[i*2+1]
}
//n = i + 1;
}
//arr[i] = true;
}
this.setData({
arr: arr,
scrollTop:scrollTop
})
},

效果图:





推荐阅读
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 微信小程序中如何实现轮播图
    这篇文章主要介绍了微信小程序中如何实现轮播图,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • JavaScript实现拖动对话框效果
    原标题:JavaScript实现拖动对话框效果代码实现:<!DOCTYPEhtml><htmllan ... [详细]
  • packagecom.lihong.DDPush.pms;importcom.lihong.DDPush.mybatis.Parser;importorg.junit.Test;impor ... [详细]
  • HTML制作简单首页导航
    h1大标题:李广程的作业列表查看演示地址一:http:js.lgcweb.cn查看演示备用地址:http:39.105.0.128Ja ... [详细]
  • 微信小程序 button、checkbox、radio组件
    微信小程序的button、checkbox、radio三个组件都属于表单组件官方参考文档:https:developers.weixin.qq.comminiprog ... [详细]
  • Jq制作的页面顶部动态弹出的提示框,可以用于提示信息的显示以及通知信息的显示。Html代码 ... [详细]
  • CSS超链接和导航
    在CSS中设置超链接样式之前我们在HTML中用标签来表示超链接通过点击跳转到另一个页面在CSS中可以通过伪类选择对超链接访问时不同状态进行设定:a:link:未被访问过的超链接样式 ... [详细]
  • 微信小程序开发如何实现地图功能
    这篇文章主要讲解了“微信小程序开发如何实现地图功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研 ... [详细]
  • 本文介绍了如何找到并终止在8080端口上运行的进程的方法,通过使用终端命令lsof -i :8080可以获取在该端口上运行的所有进程的输出,并使用kill命令终止指定进程的运行。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 面试中2次被问到过这个知识点,实际开发中,应用事件委托也比较常见。JS中事件委托的实现主要依赖于事件冒泡。那什么是事件冒泡?就是事件从最深 ... [详细]
author-avatar
gigi-dd
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有