原生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 相关文章推荐
用函数式编程技术编写优美的 JavaScript
Nov 25 Javascript
jquery 指南/入门基础
Nov 30 Javascript
JavaScript常用脚本汇总(一)
Mar 04 Javascript
JavaScript前补零操作实例
Mar 11 Javascript
JavaScript对数组进行随机重排的方法
Jul 22 Javascript
IE11下使用canvas.toDataURL报SecurityError错误的解决方法
Nov 19 Javascript
vue.js vue-router如何实现无效路由(404)的友好提示
Dec 20 Javascript
javascript数组拍平方法总结
Jan 20 Javascript
bootstrap 弹出框modal添加垂直方向滚轴效果
Jul 09 Javascript
浅谈webpack devtool里的7种SourceMap模式
Jan 14 Javascript
Vue组件之高德地图地址选择功能的实例代码
Jun 21 Javascript
javascript实现扫雷简易版
Aug 18 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
据说是雅虎的一份PHP面试题附答案
2009/01/07 PHP
FireFox浏览器使用Javascript上传大文件
2013/10/30 PHP
php自动更新版权信息显示的方法
2015/06/19 PHP
讲解WordPress中用于获取评论模板和搜索表单的PHP函数
2015/12/28 PHP
PHP给文字内容中的关键字进行套红处理
2016/04/12 PHP
PHP基于GD2函数库实现验证码功能示例
2019/01/27 PHP
基于JQuery的一句话搞定手风琴菜单
2012/09/14 Javascript
ExtJS4给Combobox设置列表中的默认值示例
2014/05/02 Javascript
ionic进入多级目录后隐藏底部导航栏(tabs)的完美解决方案
2016/11/23 Javascript
Vue组件Draggable实现拖拽功能
2018/12/01 Javascript
axios+Vue实现上传文件显示进度功能
2019/04/14 Javascript
记一次Vue.js混入mixin的使用(分权限管理页面)
2019/04/17 Javascript
p5.js实现简单货车运动动画
2019/10/23 Javascript
[01:14:10]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Orenda
2014/05/22 DOTA
python使用pyhook监控键盘并实现切换歌曲的功能
2014/07/18 Python
Python 加密的实例详解
2017/10/09 Python
利用Tkinter和matplotlib两种方式画饼状图的实例
2017/11/06 Python
Python简单获取网卡名称及其IP地址的方法【基于psutil模块】
2018/05/24 Python
Python实现定时自动关闭的tkinter窗口方法
2019/02/16 Python
Python Opencv实现图像轮廓识别功能
2020/03/23 Python
Python程序打包工具py2exe和PyInstaller详解
2019/06/28 Python
Pytorch加载部分预训练模型的参数实例
2019/08/18 Python
Python实现的爬取豆瓣电影信息功能案例
2019/09/15 Python
python获取网络图片方法及整理过程详解
2019/12/20 Python
PyCharm上安装Package的实现(以pandas为例)
2020/09/18 Python
Scrapy 配置动态代理IP的实现
2020/09/28 Python
python 获取字典键值对的实现
2020/11/12 Python
CSS3正方体旋转示例代码
2013/08/08 HTML / CSS
计算机相关的自我评价
2014/01/15 职场文书
学前教育专业求职信
2014/09/02 职场文书
法人委托书范本
2014/09/15 职场文书
四风问题自查自纠工作情况报告
2014/10/28 职场文书
捐助倡议书
2015/01/19 职场文书
2015年财务人员工作总结
2015/04/10 职场文书
民事代理词范文
2015/05/25 职场文书
win10下go mod配置方式
2021/04/25 Golang