JavaScript实现移动端无限滚动加载分页

作者:木棉时间:2026-10-22 01:46:33浏览:492

本文详解基于JavaScript实现移动端无限加载分页的原理与代码。通过监听窗口滚动事件,利用scrollHeight、clientHeight和scrollTop三个属性判断是否触底,进而触发Ajax请求加载下一页数据,实现无缝分页体验。

移动端无限滚动加载概述

本文分享使用JavaScript实现移动端无限加载分页的具体代码示例,供读者参考学习。

滚动加载核心原理

核心原理在于监听页面滚动行为,当用户滚动条触及页面底部时,自动触发并执行下一页内容的加载逻辑。

实现该功能需理解以下三个关键DOM属性: 1.scrollHeight:代表页面真实内容的总高度。 2.clientHeight:指浏览器视窗可见区域的高度,即当前屏幕上能直接看到的内容范围。 3.scrollTop:表示窗口上方被隐藏或滚动过的内容高度,即滚动条当前滚动的距离。

实现思路与关键属性

具体实现思路如下:

1. 使用fixed定位方式固定加载提示框的位置。 2. 利用$(window).scroll()方法绑定滚动事件,用于检测页面滚动状态。 3. 设置触发加载的条件公式为:真实内容高度(scrollHeight) - 视窗高度(clientHeight) - 滚动距离(scrollTop) < 10。当该差值小于10时,判定为触底并触发加载。

以下是完整的代码示例:

代码实现与逻辑解析


var page=1; //当前页的页码
      var flagNoData = false; //false
    var allpage; //总页码,会从后台获取
    function showAjax(page){
      $.ajax({
        url:"",
        type:"",
        data:"",
        success:function(data){
          //要执行的内容
          showContent();
            if(page>=data.allpage){ //当前页码大于等于总页码
            flagNoData = true;
            };
          page+=1;  //页数加1
        }
      })
    }
    function scrollFn(){
      //真实内容的高度
      var pageHeight = Math.max(document.body.scrollHeight,document.body.offsetHeight);
      //视窗的高度
      var viewportHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight || 0;
      //隐藏的高度
      var scrollHeight = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
        if(falgNoData){ //数据全部加载完了
         return;
        }else if(pageHeight - viewportHeight - scrollHeight < 10){  //如果满足触发条件,执行
        showAjax(page);
      }
    }
    $(window).bind("scroll",scrollFn);  //绑定滚动事件

以上内容为本文的全部分享,希望能为读者的学习提供有益帮助,欢迎继续支持本站获取更多技术资源。

作者最新文章