原生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 相关文章推荐
如何在Mozilla Gecko 用Javascript加载XSL
Jan 09 Javascript
JS 中document.URL 和 windows.location.href 的区别
Nov 11 Javascript
jquery下操作HTML控件的实现代码
Jan 12 Javascript
解决js数据包含加号+通过ajax传到后台时出现连接错误
Aug 01 Javascript
Jquery EasyUI中弹出确认对话框以及加载效果示例代码
Feb 13 Javascript
JavaScript组合拼接字符串的效率对比测试
Nov 06 Javascript
JS模拟Dialog弹出浮动框效果代码
Oct 16 Javascript
jquery实现垂直和水平菜单导航栏
Aug 27 Javascript
微信小程序-滚动消息通知的实例代码
Aug 03 Javascript
vue.js中created方法作用
Mar 30 Javascript
使用Vue做一个简单的todo应用的三种方式的示例代码
Oct 20 Javascript
vue项目中实现图片预览的公用组件功能
Oct 26 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 foreach 使用&amp;(与运算符)引用赋值要注意的问题
2010/02/16 PHP
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
2011/04/18 PHP
Yii2表单事件之Ajax提交实现方法
2017/05/04 PHP
微博@符号的用户名提示效果。(想@到谁?)
2010/11/05 Javascript
用jquery模仿的a的title属性(兼容ie6/7)
2013/01/21 Javascript
高性能JavaScript模板引擎实现原理详解
2015/02/05 Javascript
jQuery.form插件的使用及跨域异步上传文件
2016/04/27 Javascript
JS实用技巧小结(屏蔽错误、div滚动条设置、背景图片位置等)
2016/06/16 Javascript
浅谈window.onbeforeunload() 事件调用ajax
2016/06/29 Javascript
jQuery中Nicescroll滚动条插件的用法
2016/11/10 Javascript
JavaScript实现格式化字符串函数String.format
2016/12/16 Javascript
React Component存在的几种形式详解
2018/11/06 Javascript
微信小程序开发实现的IP地址查询功能示例
2019/03/28 Javascript
微信小程序实现录音时的麦克风动画效果实例
2019/05/18 Javascript
Vue-cli项目部署到Nginx服务器的方法
2019/11/01 Javascript
js中Function引用类型常见有用的方法和属性详解
2019/12/11 Javascript
JavaScript canvas动画实现时钟效果
2020/02/10 Javascript
Python简单爬虫导出CSV文件的实例讲解
2018/07/06 Python
浅谈python 导入模块和解决文件句柄找不到问题
2018/12/15 Python
对python中的os.getpid()和os.fork()函数详解
2019/08/08 Python
Pytorch在dataloader类中设置shuffle的随机数种子方式
2020/01/14 Python
利用python中集合的唯一性实现去重
2020/02/11 Python
python入门之井字棋小游戏
2020/03/05 Python
使用Dajngo 通过代码添加xadmin用户和权限(组)
2020/07/03 Python
Python函数__new__及__init__作用及区别解析
2020/08/31 Python
Ubuntu权限不足无法创建文件夹解决方案
2020/11/14 Python
跨域修改iframe页面内容详解
2019/10/31 HTML / CSS
欧洲最古老的鞋厂:Peter Kaiser
2019/11/05 全球购物
瑞典耳机品牌:URBANISTA
2019/12/03 全球购物
销售工作人员的自我评价分享
2013/11/10 职场文书
高职教师先进事迹材料
2014/08/24 职场文书
家长评语怎么写
2014/12/30 职场文书
先进个人总结范文
2015/02/15 职场文书
同意报考证明
2015/06/17 职场文书
SpringBoot中HttpSessionListener的简单使用方式
2022/03/17 Java/Android
Python下载商品数据并连接数据库且保存数据
2022/03/31 Python