原生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 相关文章推荐
js中使用使用原型(prototype)定义方法的好处详解
Jul 04 Javascript
js对字符串进行编码的方法总结(推荐)
Nov 10 Javascript
JS实现点击表头表格自动排序(含数字、字符串、日期)
Jan 22 Javascript
用move.js库实现百叶窗特效
Feb 08 Javascript
js鼠标经过tab选项卡时实现切换延迟
Mar 24 Javascript
Angular4开发解决跨域问题详解
Aug 28 Javascript
Vue项目组件化工程开发实践方案
Jan 09 Javascript
vue2.0+vue-router构建一个简单的列表页的示例代码
Feb 13 Javascript
JS eval代码快速解密实例解析
Apr 23 Javascript
jquery实现简易验证插件封装
Sep 13 jQuery
一小时迅速入门Mybatis之bind与多数据源支持 Java API
Sep 15 Javascript
JavaScript展开运算符和剩余运算符的区别详解
Feb 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
基于文本的留言簿
2006/10/09 PHP
php 字符转义 注意事项
2009/05/27 PHP
php创建类并调用的实例方法
2019/09/25 PHP
JavaScript constructor和instanceof,JSOO中的一对欢喜冤家
2009/05/25 Javascript
JQuery获取文本框中字符长度的代码
2011/09/29 Javascript
cnblogs 代码高亮显示后的代码复制问题解决实现代码
2011/12/14 Javascript
Firefox中beforeunload事件的实现缺陷浅析
2012/05/03 Javascript
jQuery的基本概念与高级编程
2015/05/14 Javascript
jQuery+AJAX实现遮罩层登录验证界面(附源码)
2020/09/13 Javascript
理解JavaScript中Promise的使用
2016/01/18 Javascript
判断是否存在子节点的实现代码
2016/05/18 Javascript
详解Javascript ES6中的箭头函数(Arrow Functions)
2016/08/24 Javascript
jquery属性,遍历,HTML操作方法详解
2016/09/17 Javascript
bootstrap基础知识学习笔记
2016/11/02 Javascript
AngularJS页面传参的5种方式
2017/04/01 Javascript
js数字滑动时钟的简单实现(示例讲解)
2017/08/14 Javascript
vue router动态路由下让每个子路由都是独立组件的解决方案
2018/04/24 Javascript
小试小程序云开发(小结)
2019/06/06 Javascript
Element Alert警告的具体使用方法
2020/07/27 Javascript
[13:40]TI3青蛙君全程回顾 DOTA2我们为梦想再战
2013/09/13 DOTA
[10:04]国际邀请赛采访专栏:DK.Farseer,mouz.Black^,采访员Josh专访
2013/08/05 DOTA
Python中获取对象信息的方法
2015/04/27 Python
Python的消息队列包SnakeMQ使用初探
2016/06/29 Python
Python判断字符串是否为字母或者数字(浮点数)的多种方法
2018/08/03 Python
python实现在cmd窗口显示彩色文字
2019/06/24 Python
Django中的cookie和session
2019/08/27 Python
详解Flask前后端分离项目案例
2020/07/24 Python
What is view? why do we have view?
2012/06/22 面试题
教师敬业奉献模范事迹材料
2014/05/18 职场文书
物理系毕业生自荐书
2014/06/13 职场文书
客服专员岗位职责范本
2015/04/07 职场文书
2016公务员年度考核评语
2015/12/01 职场文书
2019新员工心得体会
2019/06/25 职场文书
普希金诗歌赏析(6首)
2019/08/22 职场文书
php实现自动生成验证码的实例讲解
2021/11/17 PHP
前端实现滑动按钮AJAX与后端交互的示例代码
2022/02/24 Javascript