原生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检测CPU使用率自己写的
Mar 22 Javascript
jQuery+HTML5实现手机摇一摇换衣特效
Jun 05 Javascript
node.js中格式化数字增加千位符的几种方法
Jul 03 Javascript
Sort()函数的多种用法
Mar 20 Javascript
Express URL跳转(重定向)的实现方法
Apr 07 Javascript
JS排序之选择排序详解
Apr 08 Javascript
vue中的event bus非父子组件通信解析
Oct 27 Javascript
微信公众平台 发送模板消息(Java接口开发)
Apr 17 Javascript
vue 子组件修改data或调用操作
Aug 07 Javascript
在vue中封装方法以及多处引用该方法详解
Aug 14 Javascript
react-intl实现React国际化多语言的方法
Sep 27 Javascript
基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能
Feb 23 Vue.js
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
攻克CakePHP系列三 表单数据增删改
2008/10/22 PHP
php采集内容中带有图片地址的远程图片并保存的方法
2015/01/03 PHP
php简单压缩css样式示例
2016/09/22 PHP
php7性能提升的原因详解
2019/10/13 PHP
js中将HTMLCollection/NodeList/伪数组转换成数组的代码
2011/07/31 Javascript
js获取下拉列表框中的value和text的值示例代码
2014/01/11 Javascript
实例说明为什么不要行内使用javascript
2014/04/18 Javascript
JavaScript中setUTCFullYear()方法的使用简介
2015/06/12 Javascript
JavaScript实现垂直向上无缝滚动特效代码
2016/11/23 Javascript
详解nodeJs文件系统(fs)与流(stream)
2018/01/24 NodeJs
Vue动态路由缓存不相互影响的解决办法
2019/02/19 Javascript
react同构实践之实现自己的同构模板
2019/03/13 Javascript
jquery实现二级导航下拉菜单效果实例
2019/05/14 jQuery
谈谈IntersectionObserver懒加载的具体使用
2019/10/15 Javascript
vue计算属性无法监听到数组内部变化的解决方案
2019/11/06 Javascript
Vuex的热更替如何实现
2020/06/05 Javascript
在vue中使用eslint,配合vscode的操作
2020/11/09 Javascript
[46:03]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[01:52]2020年DOTA2 TI10夏季活动预告片
2020/07/15 DOTA
使用Python3中的gettext模块翻译Python源码以支持多语言
2015/03/31 Python
python 回调函数和回调方法的实现分析
2016/03/23 Python
python中使用zip函数出现错误的原因
2018/09/28 Python
给我一面国旗 python帮你实现
2019/09/30 Python
Python类及获取对象属性方法解析
2020/06/15 Python
在django中查询获取数据,get, filter,all(),values()操作
2020/08/09 Python
pycharm 复制代码出现空格的解决方式
2021/01/15 Python
使用phonegap创建联系人的实现方法
2017/03/30 HTML / CSS
XD健身器材:Kevlar球、Crossfit健身球
2019/03/26 全球购物
澳洲Chemist Direct药房中文网:澳洲大型线上直邮药房
2019/11/04 全球购物
Otiumberg官网:英国半精致珠宝品牌
2021/01/16 全球购物
5个HTML5的常用本地存储方式详解与介绍
2021/03/27 HTML / CSS
2014年公司植树节活动方案
2014/03/04 职场文书
统计员岗位职责
2015/02/11 职场文书
护士辞职信怎么写
2015/02/27 职场文书
投标售后服务承诺书
2015/04/29 职场文书
Python实现猜拳与猜数字游戏的方法详解
2022/04/06 Python