原生JS下拉加载插件分享


Posted in Javascript onDecember 26, 2016

使用方式:

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();

原生JS下拉加载插件分享

原生JS下拉加载插件分享

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

参数说明:

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

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

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

callback(name1,name2)

name1:data

name2:配置

原生JS下拉加载插件分享

源代码:

<!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>

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

Javascript 相关文章推荐
jquery的颜色选择插件实例代码
Oct 02 Javascript
基于jquery的15款幻灯片插件
Apr 10 Javascript
jQuery中jqGrid分页实现代码
Nov 04 Javascript
JavaScript实现的双向跨域插件分享
Jan 31 Javascript
运行Node.js的IIS扩展iisnode安装配置笔记
Mar 02 Javascript
js实现的下拉框二级联动效果
Apr 30 Javascript
简单实现Bootstrap标签页
Aug 09 Javascript
jQuery extend()详解及简单实例
May 06 jQuery
Servlet3.0与纯javascript通过Ajax交互的实例详解
Mar 18 Javascript
JavaScript常用截取字符串的三种方式用法区别实例解析
May 15 Javascript
vue动态绑定class选中当前列表变色的方法示例
Dec 19 Javascript
js实现时分秒倒计时
Dec 03 Javascript
jQuery实现的checkbox级联选择下拉菜单效果示例
Dec 26 #Javascript
javascript输出AscII码扩展集中的字符方法
Dec 26 #Javascript
在一个页面重复使用一个js函数的方法详解
Dec 26 #Javascript
jquery无法为动态生成的元素添加点击事件的解决方法(推荐)
Dec 26 #Javascript
jQuery实现动态添加tr到table的方法
Dec 26 #Javascript
浅谈JavaScript的计时器对象
Dec 26 #Javascript
js模糊查询实例分享
Dec 26 #Javascript
You might like
PDO版本问题 Invalid parameter number: no parameters were bound
2013/01/06 PHP
用javascript父窗口控制只弹出一个子窗口
2007/04/10 Javascript
JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结
2010/04/13 Javascript
IE之动态添加DOM节点触发window.resize事件
2010/07/27 Javascript
分享一个自定义的console类 让你不再纠结JS中的调试代码的兼容
2012/04/20 Javascript
Javascript图像处理—亮度对比度应用案例
2013/01/03 Javascript
jQuery实现控制文字内容溢出用省略号(…)表示的方法
2016/02/26 Javascript
javascript 广告移动特效的实现代码
2016/06/25 Javascript
jQuery插件学习教程之SlidesJs轮播+Validation验证
2016/07/12 Javascript
vue 2.0组件与v-model详解
2017/03/27 Javascript
Vue仿手机qq的实例代码(demo)
2017/09/08 Javascript
vuex存储复杂参数(如对象数组等)刷新数据丢失的解决方法
2019/11/05 Javascript
微信小程序 wx:for 与 wx:for-items 与 wx:key的正确用法
2020/05/19 Javascript
浅谈JS for循环中使用break和continue的区别
2020/07/21 Javascript
vue实现从外部修改组件内部的变量的值
2020/07/30 Javascript
JS性能优化实现方法及优点进行
2020/08/30 Javascript
node.js通过url读取文件
2020/10/16 Javascript
python网络编程示例(客户端与服务端)
2014/04/24 Python
Python之eval()函数危险性浅析
2014/07/03 Python
Python的shutil模块中文件的复制操作函数详解
2016/07/05 Python
对Python中DataFrame按照行遍历的方法
2018/04/08 Python
Python 利用pydub库操作音频文件的方法
2019/01/09 Python
Python openpyxl读取单元格字体颜色过程解析
2019/09/03 Python
Django框架教程之中间件MiddleWare浅析
2019/12/29 Python
详解pandas中iloc, loc和ix的区别和联系
2020/03/09 Python
浅谈Python中的继承
2020/06/19 Python
美国高品质个性化珠宝销售网站:Jewlr
2018/05/03 全球购物
Piercing Pagoda官网:耳环、戒指、项链、手链等
2020/09/28 全球购物
中专生自我鉴定范文
2014/02/02 职场文书
广告词串烧
2014/03/19 职场文书
学生检讨书如何写
2014/10/30 职场文书
英文感谢信格式
2015/01/21 职场文书
2015年党员创先争优承诺书
2015/01/22 职场文书
世界气象日活动总结
2015/02/27 职场文书
债务纠纷起诉书
2015/05/20 职场文书
公司借条范本
2015/05/25 职场文书