原生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核心路由系统完全入门指南

