原生JS下拉加载插件分享

发布时间 - 2026-01-10 22:06:58    点击率:

使用方式:

new downUpData({url:"http://192.168.1.103:8080/test/
data.json",distance:20,callback:function(resp,config){
 var oUl = document.getElementById('ul');
 for(var i=0;i<resp.data.length;i+=1){
 oUl.innerHTML+= '<li>'+ resp.data[i].title +'</li>';
 }
}}).isBottom();

默认滚动到底部会去请求ajax

参数说明:

url:请求的数据地址,不支持跨域(必须)

distance:距离底部多远加载(可选参数)

callback:当滚动到指定距离后请求完ajax将会触发这个回调函数,里面有两个参数,第一个为数据(以及转成JSON对象了,用的是JSON.parse,可能低版本浏览器不支持这个方法),第二个参数为传进去的参数,当你需要重新改变请求信息的时候可以用这个,比如说你想做分页效果,就需要改变url地址。

callback(name1,name2)

name1:data

name2:配置

源代码:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <style>
 body,ul{
  margin:0;
  padding:0;
 }
 </style>
</head>
<body>
 <ul id="ul">
 </ul>
 <script>
 function downUpData(obj){
  this.config = obj;
 };
 downUpData.prototype = {
  // 判断是否到达底部
  isBottom:function(){
  var _this = this;
  var scrollH = null,
   clientHeight = null;
   scrollTop = null;
   distance = this.config.distance||0;
   h = 0;
  function scroll(){
   scrollH = document.body.scrollHeight||document.documentElement.scrollHeight;
   clientHeight = window.innerHeight;
   scrollTop = document.body.scrollTop||document.documentElement.scrollTop;
   h = clientHeight + scrollTop;
   if(h>=scrollH-distance){
   _this.ajax();
   }
  }
  scroll();

  window.onscroll = function(){
   scroll();
  };
  },
  // 发送AJAX请求
  ajax:function(){
  var _this = this;
  var xhr = null;
  if(window.XMLHttpRequest){
   xhr = new XMLHttpRequest();
  }else{
   xhr = new ActiveXObject("Microsoft.XMLHTTP");
  }

  xhr.open("GET",this.config.url,true);
  xhr.onreadystatechange = function(){
   if(xhr.readyState==4&&xhr.status==200){
   _this.config.callback(JSON.parse(xhr.responseText),_this.config);
   }
  }
  xhr.send();
  }
 };

 new downUpData({url:"http://192.168.1.103:8080/test/data.json",distance:20,callback:function(resp,config){
  console.log(config)
  var oUl = document.getElementById('ul');
  for(var i=0;i<resp.data.length;i+=1){
  oUl.innerHTML+= '<li>'+ resp.data[i].title +'</li>';
  }
 }}).isBottom();
 </script>
</body>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# 原生JS  # 下拉  # 加载  # 原生JS封装Ajax插件(同域、jsonp跨域)  # 原生JS实现旋转木马式图片轮播插件  # 原生js实现autocomplete插件  # 原生js编写autoComplete插件  # 轻量级的原生js日历插件calendar.js使用指南  # 原生Javascript插件开发实践  # 不支持  # 的是  # 第一个  # 将会  # 多远  # 可以用  # 当你  # 第二个  # 分页  # 说你  # 可选  # 会去  # 想做  # 回调  # 转成  # 源代码  # 版本浏览器  # 判断是否  # 有两个 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: HTML 中动态设置元素 name 属性的正确语法详解  google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  长沙企业网站制作哪家好,长沙水业集团官方网站?  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  海南网站制作公司有哪些,海口网是哪家的?  如何做网站制作流程,*游戏网站怎么搭建?  详解阿里云nginx服务器多站点的配置  如何快速搭建高效香港服务器网站?  详解jQuery中的事件  Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】  魔方云NAT建站如何实现端口转发?  手机软键盘弹出时影响布局的解决方法  实现点击下箭头变上箭头来回切换的两种方法【推荐】  如何在新浪SAE免费搭建个人博客?  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  网站页面设计需要考虑到这些问题  免费网站制作appp,免费制作app哪个平台好?  Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】  Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优  Laravel如何自定义分页视图?(Pagination示例)  Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析  php在windows下怎么调试_phpwindows环境调试操作说明【操作】  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  Laravel中的Facade(门面)到底是什么原理  如何在宝塔面板中修改默认建站目录?  Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  如何在阿里云购买域名并搭建网站?  如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框  Python文本处理实践_日志清洗解析【指导】  Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  如何在Windows服务器上快速搭建网站?  如何快速查询网址的建站时间与历史轨迹?  javascript日期怎么处理_如何格式化输出  如何在IIS中新建站点并配置端口与IP地址?  详解jQuery中基本的动画方法  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  佛山企业网站制作公司有哪些,沟通100网上服务官网?  js代码实现下拉菜单【推荐】  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  java获取注册ip实例  实例解析Array和String方法  详解Huffman编码算法之Java实现  QQ浏览器网页版登录入口 个人中心在线进入  PHP正则匹配日期和时间(时间戳转换)的实例代码  Laravel路由怎么定义_Laravel核心路由系统完全入门指南