原生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知识点收藏
Feb 22 Javascript
jquery 简短几句代码实现给元素动态添加及获取提示信息
Sep 01 Javascript
js,jquery滚动/跳转页面到指定位置的实现思路
Jun 03 Javascript
javascript文本框内输入文字倒计数的方法
Feb 24 Javascript
JS实现的网页倒计时数字时钟效果
Mar 02 Javascript
js 求时间差的实现代码
Apr 26 Javascript
Bootstrap Modal对话框如何在关闭时触发事件
Dec 02 Javascript
JavaScript定时器制作弹窗小广告
Feb 05 Javascript
JavaScript中的事件与异常捕获详析
Feb 24 Javascript
微信小程序实现图片选择并预览功能
Jul 25 Javascript
vue+vant-UI框架实现购物车的复选框全选和反选功能
Nov 05 Javascript
详解JavaScript执行模型
Nov 16 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分页显示制作详细讲解
2008/11/19 PHP
一个PHP数组应该有多大的分析
2009/07/30 PHP
修改php.ini以达到屏蔽错误信息并记录日志
2013/06/16 PHP
THINKPHP项目开发中的日志记录实例分析
2014/12/01 PHP
浅谈json_encode用法
2015/03/05 PHP
php实现socket推送技术的示例
2017/12/20 PHP
兼容多浏览器的字幕特效Marquee的通用js类
2008/07/20 Javascript
xss文件页面内容读取(解决)
2010/11/28 Javascript
javascript scrollTop正解使用方法
2013/11/14 Javascript
jQuery插件开发详细教程
2014/06/06 Javascript
jQuery select表单提交省市区城市三级联动核心代码
2014/06/09 Javascript
JavaScript解析json格式数据简单示例
2014/12/09 Javascript
浅谈重写window对象的方法
2014/12/29 Javascript
JS 调用微信扫一扫功能
2016/12/22 Javascript
微信小程序使用video组件播放视频功能示例【附源码下载】
2017/12/08 Javascript
浅谈Angular7 项目开发总结
2018/12/19 Javascript
实现elementUI表单的全局验证的方法步骤
2019/04/29 Javascript
如何基于javascript实现贪吃蛇游戏
2020/02/09 Javascript
vscode中的vue项目报错Property ‘xxx‘ does not exist on type ‘CombinedVueInstance<{ readyOnly...Vetur(2339)
2020/09/11 Javascript
js获取图片的base64编码并压缩
2020/12/05 Javascript
[02:02]特效爆炸!DOTA2珍宝之瓶待你开启
2018/08/21 DOTA
pip matplotlib报错equired packages can not be built解决
2018/01/06 Python
python pands实现execl转csv 并修改csv指定列的方法
2018/12/12 Python
PyQt4编程之让状态栏显示信息的方法
2019/06/18 Python
浅析Windows 嵌入python解释器的过程
2019/07/26 Python
利用matplotlib为图片上添加触发事件进行交互
2020/04/23 Python
jupyter notebook 写代码自动补全的实现
2020/11/02 Python
美国著名的家居用品购物网站:Bed Bath & Beyond
2018/01/05 全球购物
上海中网科技笔试题
2012/02/19 面试题
厕所文明标语
2014/06/11 职场文书
水利水电专业自荐信
2014/07/08 职场文书
先进员工获奖感言
2014/08/14 职场文书
学校总务处领导班子民主生活会对照检查材料思想汇报
2014/09/27 职场文书
部门2014年度工作总结
2014/11/12 职场文书
重阳节活动主持词
2015/07/04 职场文书
MySQL里面的子查询的基本使用
2021/08/02 MySQL