原生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 相关文章推荐
出现“不能执行已释放的Script代码”错误的原因及解决办法
Aug 29 Javascript
jquery.jstree 增加节点的双击事件代码
Jul 27 Javascript
JQuery与JSon实现的无刷新分页代码
Sep 13 Javascript
jQuery输入城市查看地图使用介绍
May 08 Javascript
JS图片自动轮换效果实现思路附截图
Apr 30 Javascript
JavaScript中的some()方法使用详解
Jun 09 Javascript
Backbone.js的Hello World程序实例
Jun 19 Javascript
基于JQuery和CSS3实现仿Apple TV海报背景视觉差特效源码分享
Sep 21 Javascript
JS刷新父窗口的几种方式小结(推荐)
Nov 09 Javascript
Javascript实现登录记住用户名和密码功能
Mar 22 Javascript
将jquery.qqFace.js表情转换成微信的字符码
Dec 01 jQuery
在vue中使用vant TreeSelect分类选择组件操作
Nov 02 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/12/14 PHP
探讨:如何使用PhpDocumentor生成文档
2013/06/25 PHP
php/JS实现的生成随机密码(验证码)功能示例
2019/06/06 PHP
JQuery插件Style定制化方法的分析与比较
2012/05/03 Javascript
javascript实现完美拖拽效果
2015/05/06 Javascript
JavaScript中数组的合并以及排序实现示例
2015/10/24 Javascript
javascript实现数字倒计时特效
2016/03/30 Javascript
js轮播图代码分享
2016/07/14 Javascript
self.attachevent is not a function的解决方法
2017/04/04 Javascript
js es6系列教程 - 新的类语法实战选项卡(详解)
2017/09/02 Javascript
axios进阶实践之利用最优雅的方式写ajax请求
2017/12/20 Javascript
node puppeteer(headless chrome)实现网站登录
2018/05/09 Javascript
微信小程序实现倒计时调用相机自动拍照功能
2018/06/10 Javascript
基于vue循环列表时点击跳转页面的方法
2018/08/31 Javascript
Vue项目中最新用到的一些实用小技巧
2018/11/06 Javascript
深入探讨JavaScript的最基本部分之执行上下文
2019/02/12 Javascript
vue store之状态管理模式的详细介绍
2019/06/13 Javascript
深入浅析Vue中mixin和extend的区别和使用场景
2019/08/01 Javascript
JavaScript常用工具函数大全
2020/05/06 Javascript
Javascript新手入门之字符串拼接与变量的应用
2020/12/03 Javascript
Python中使用Boolean操作符做真值测试实例
2015/01/30 Python
python处理csv数据的方法
2015/03/11 Python
Python Json序列化与反序列化的示例
2018/01/31 Python
python查询mysql,返回json的实例
2018/03/26 Python
Python日期时间模块datetime详解与Python 日期时间的比较,计算实例代码
2018/09/14 Python
Django之Mode的外键自关联和引用未定义的Model方法
2018/12/15 Python
Django url,从一个页面调到另个页面的方法
2019/08/21 Python
浅析Python迭代器的高级用法
2020/07/16 Python
Python常用扩展插件使用教程解析
2020/11/02 Python
美国豪华时尚女性精品店:Kirna Zabête
2018/01/11 全球购物
KIEHL’S科颜氏官方旗舰店:源自美国的顶级护肤品牌
2018/06/07 全球购物
房屋买卖委托书格式范本格式
2014/10/13 职场文书
幼儿园开学家长寄语(2016秋季)
2015/12/03 职场文书
干货:如何写好观后感 !
2019/05/21 职场文书
导游词之湖州-太湖
2019/10/11 职场文书
Python OpenCV实现图像模板匹配详解
2022/04/07 Python