原生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 13 Javascript
JavaScript调用后台的三种方法实例
Oct 17 Javascript
json中换行符的处理方法示例介绍
Jun 10 Javascript
JavaScript学习笔记之基础语法
Jan 22 Javascript
微信小程序 简单DEMO布局,逻辑,样式的练习
Nov 30 Javascript
JavaScript Date 知识浅析
Jan 29 Javascript
swiper 解决动态加载数据滑动失效的问题
Feb 26 Javascript
vue实现底部菜单功能
Jul 24 Javascript
JQuery获取元素尺寸、位置及页面滚动事件应用示例
May 14 jQuery
详解小程序如何改变onLoad的执行时机
Nov 01 Javascript
jQuery实现二级导航菜单的示例
Sep 30 jQuery
JS实现数组去重的11种方法总结
Apr 04 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
全国FM电台频率大全 - 23 四川省
2020/03/11 无线电
PHP 多进程 解决难题
2009/06/22 PHP
Thinkphp结合ajaxFileUpload实现异步图片传输示例
2017/03/13 PHP
用js实现的页面关键字密度查询代码
2007/12/27 Javascript
dojo学习第一天 Tab选项卡 实现
2011/08/28 Javascript
JavaScript 学习笔记之一jQuery写法图片等比缩放以及预加载
2012/06/28 Javascript
js 3种归并操作的实例代码
2013/10/30 Javascript
JS获取几种URL地址的方法小结
2014/02/26 Javascript
jQuery选择器全集详解
2014/11/24 Javascript
node.js中的fs.write方法使用说明
2014/12/15 Javascript
常用的jQuery前端技巧收集
2014/12/24 Javascript
jQuery中:reset选择器用法实例
2015/01/04 Javascript
JavaScript 里的类数组对象
2015/04/08 Javascript
AngularJs Scope详解及示例代码
2016/09/01 Javascript
JS取数字小数点后两位或n位的简单方法
2016/10/24 Javascript
老生常谈JavaScript面向对象基础与this指向问题
2017/10/16 Javascript
jQuery动态添加li标签并添加属性和绑定事件方法
2018/02/24 jQuery
vue小白入门教程
2018/04/02 Javascript
微信小程序异步API为Promise简化异步编程的操作方法
2018/08/14 Javascript
微信小程序提交form操作示例
2018/12/30 Javascript
微信小程序云开发之新手环境配置
2019/05/16 Javascript
详解Vue3 Composition API中的提取和重用逻辑
2020/04/29 Javascript
python urllib urlopen()对象方法/代理的补充说明
2017/06/29 Python
在Pandas中处理NaN值的方法
2019/06/25 Python
Python利用matplotlib做图中图及次坐标轴的实例
2019/07/08 Python
详解Python修复遥感影像条带的两种方式
2020/02/23 Python
python异常处理、自定义异常、断言原理与用法分析
2020/03/23 Python
pyqt5中动画的使用详解
2020/04/01 Python
python语音识别指南终极版(有这一篇足矣)
2020/09/09 Python
分享unittest单元测试框架中几种常用的用例加载方法
2020/12/02 Python
一套英文Java笔试题面试题
2016/04/21 面试题
社区戒毒工作方案
2014/06/04 职场文书
诉讼代理人授权委托书
2014/10/11 职场文书
计划生育工作汇报
2014/10/28 职场文书
新员工试用期工作总结2015
2015/05/28 职场文书
使用redis生成唯一编号及原理示例详解
2021/09/15 Redis