移动端上滑加载的DOM实现

  • 在移动端开发中经常会遇到渲染列表数据的业务,而首屏通常容纳不了列表的数据视图,所以要用到类似分页概念的数据加载机制。在人机交互的领域中,滑动加载数据对于用户是一个不错的交互体验,故通过滑动事件来触发数据加载是一个不错的选择。

  • 通过查阅资料,DOM中与滑动有关的属性有很多,这里真正要用到的有三个,如下所示:
    clientHeight:手机屏幕的高度
    scrollHeight:DOM内容的高度
    scrollTop:垂直滚动条距离顶部的距离,随着向上滑动而增加
    规律:clientHeight + scrollTop <= scrollHeight

  • 具体实现如下:

//手机屏幕的高度
let clientHeight = document.body.clientHeight; 
//DOM内容的高度
let scrollHeight = document.body.scrollHeight;
//垂直滚动条距离顶部的距离,随着向上滑动而增加
let scrollTop = document.body.scrollTop;
//提前加载的滑动距离(为什么要提前加载?因为网络请求存在延迟,如果不提前一会请求网络,可能给用户带来不好的交互体验。)
let proLoadDis = 30; 

if ((scrollTop + clientHeight) >= (scrollHeight - proLoadDis)) {
	//发起请求
	console.log(scrollTop + ':' + clientHeight + ':' + scrollHeight)
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值