Javascript实现滚动加载

本文介绍了一种不依赖插件的滚动加载实现方法,通过监听滚动事件并比较文档实际高度、滚动距离及窗口可视高度,自动加载更多数据。适用于数据量大的页面,提升用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当我们页面数据量过多时我们常常会用到滚动加载,那除了插件以外我们怎么实现滚动加载呢?

首先我们先考虑滚动加载都需要哪些变量来做比较:

1.文档内容实际高度:
document.documentElement.scrollHeight,document.body.scrollHeight

2.滚动条滚动距离:

window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop

3.窗口可视高度:

document.documentElement.clientHeight,document.body,clientHeight

那么我们需要在window.onscroll滚动事件中来进行逻辑处理

window.onscroll = function(){
    //文档内容实际高度(包括超出视窗的溢出部分)
    var scrollHeight = Math.max(document.documentElement.scrollHeight,document.body.scrollHeight)
    //滚动条滚动距离
    var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
    //窗口可视范围高度
    var clientHeight = window.innerHeight || Math.max(document.documentElement.clientHeight,document.body,clientHeight)
    if(clientHeight + scrollTop >= scrollHeight){
	    console.log("滚动加载开始")
	    //判断当前数据是否已经加载结束
        //此时我是先实例化了一个Vue对象vm
	    if(vm.show3 != true){//show3是来控制“没有更过数据”的dom节点的显示与隐藏
            //show2是用来控制“正在加载...”的dom节点的显示与隐藏
		    vm.show2 = true
            //调用数据列表接口实现数据加载
		    vm.loadList()
	    }
    }
}

然后通过在loadList()里做数据处理之后,滚动加载效果就完成了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值