js上拉加载ajax数据,原生ajax写的上拉加载实例

上拉加载的思路

1 上拉加载是要把屏幕拉到最底部的时候触发ajax事件请求数据

2.所有要获取屏幕的高度 文档的高度 和滚动的高度 下面的代码是已经做好了兼容的可以直接拿来用

Javascript:

alert(document.body.clientWidth); //网页可见区域宽(body)

alert(document.body.clientHeight); //网页可见区域高(body)

alert(document.body.offsetWidth); //网页可见区域宽(body),包括border、margin等

alert(document.body.offsetHeight); //网页可见区域宽(body),包括border、margin等

alert(document.body.scrollWidth); //网页正文全文宽,包括有滚动条时的未见区域

alert(document.body.scrollHeight); //网页正文全文高,包括有滚动条时的未见区域

alert(document.body.scrollTop); //网页被卷去的Top(滚动条)

alert(document.body.scrollLeft); //网页被卷去的Left(滚动条)

alert(window.screenTop); //浏览器距离Top

alert(window.screenLeft); //浏览器距离Left

alert(window.screen.height); //屏幕分辨率的高

alert(window.screen.width); //屏幕分辨率的宽

alert(window.screen.availHeight); //屏幕可用工作区的高

alert(window.screen.availWidth); //屏幕可用工作区的宽

Jquery

alert($(window).height()); //浏览器当前窗口可视区域高度

alert($(document).height()); //浏览器当前窗口文档的高度

alert($(document.body).height()); //浏览器当前窗口文档body的高度

alert($(document.body).outerHeight(true)); //浏览器当前窗口文档body的总高度 包括border padding margin

alert($(window).width()); //浏览器当前窗口可视区域宽度

alert($(document).width()); //浏览器当前窗口文档对象宽度

alert($(document.body).width()); //浏览器当前窗口文档body的宽度

alert($(document.body).outerWidth(true)); //浏览器当前窗口文档body的总宽度 包括border padding margin

//获取滚动条当前的位置

function getScrollTop() {

var scrollTop = 0;

if (document.documentElement && document.documentElement.scrollTop) {

scrollTop = document.documentElement.scrollTop;

} else if (document.body) {

scrollTop = document.body.scrollTop;

}

return scrollTop;

}

//获取当前可视范围的高度

function getClientHeight() {

var clientHeight = 0;

if (document.body.clientHeight && document.documentElement.clientHeight) {

clientHeight = Math.min(document.body.clientHeight, document.documentElement.clientHeight);

} else {

clientHeight = Math.max(document.body.clientHeight, document.documentElement.clientHeight);

}

return clientHeight;

}

//获取文档完整的高度

function getScrollHeight() {

return Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);

}

var upDown = function (opt) {

opt = opt || {};

var up = opt.up || function () {

};

window.onscroll = function () {

if (getScrollTop() + getClientHeight() == getScrollHeight()) { //距离顶部+当前高度 >=文档总高度 即代表滑动到底部

if(is_scroll === true){ //当这个为true的时候调用up方法 ....is_scroll没看懂往下看

up();

}}

}

};

3.首先要默认加载第一页,在window.onload调用upDown这个方法

window.onload = function () {

getData();//页面加载完就显示了第一页

upDown({

up: getData

});

}

4.当页面滚到底部的时候触发up()这个方法,up调用getdata这个方法.下面就是怎么获取数据了

在全局定义两个变量 var is_scroll = true;var count = 0;

var is_scroll = true;

var count = 0;

function getAjax() {

var el, li;

var xhr = new XMLHttpRequest();

xhr.open('get', 'page' + count + '.json');

xhr.send();

xhr.onreadystatechange = function () {

var loadingEnd = document.getElementById('loadingEnd');

var dropLoad = document.getElementById('dropLoad');

if (xhr.readyState === 4 && xhr.status === 200) {

var res = xhr.responseText;

var data = JSON.parse(res);

allData = allData.concat(data);//新的一页拼接到后面;

if (data.length === 0) { //当获取到的数据长度为0 说明没有count+是请求不到数据了

is_scroll = true // 定义为true

loadingEnd.style.display = 'block'; //显示没有数据

}

el = document.querySelector("#wrapper ul");

for (var k in data) { //遍历获取到的每一条数据

li = document.createElement('li'); // 创建节点

li.innerHTML = "

" + data[k].name + "" + data[k].money + "
" + data[k].time + "

el.appendChild(li, el.childNodes[0]);

}

dropLoad.style.display = 'block';//显示加载中

} else { //这个可有可无 是个假的 不管请求没有请求到都会有个加载中的动画

setTimeout(function () {

dropLoad.style.display = 'none';

}, 500)

}

};

}

.drop-load {

text-align: center;

height: 80px;

line-height: 50px;

}

.drop-load .loading {

display: inline-block;

height: 15px;

width: 15px;

border-radius: 100%;

margin: 6px;

border: 2px solid #666;

border-bottom-color: transparent;

vertical-align: middle;

-webkit-animation: rotate 0.75s linear infinite;

animation: rotate 0.75s linear infinite;

}

@-webkit-keyframes rotate {

0% {

-webkit-transform: rotate(0deg);

}

50% {

-webkit-transform: rotate(180deg);

}

100% {

-webkit-transform: rotate(360deg);

}

}

@keyframes rotate {

0% {

transform: rotate(0deg);

}

50% {

transform: rotate(180deg);

}

100% {

transform: rotate(360deg);

}

}

.loadingEnd {

font-size: 0.3rem;

color: black;

width: 100%;

height: 40px;

text-align: center;

}

加载中

到底了

以上这篇原生ajax写的上拉加载实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/533256.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

b站前端大佬_知乎大佬强烈热推的5个自学网站,看了几个月,月薪三千涨三万...

原标题:知乎大佬强烈热推的5个自学网站,看了几个月,月薪三千涨三万现在很多踏入了社会的小伙伴们经常会觉得为什么工作能力提升不上去,主要是因为很少利用业余的时间来学习一些跟自己工作有关的专业知识来充实自己,这其…

xp系统如何开启共享服务器,xp系统怎么关闭共享服务 xp系统共享打印机如何设置...

XP系统虽然已经出来很久了,但是仍然还有很多用户在使用,其实不管哪个系统只要电脑可以正常使用就行。很多XP用户在开启共享功能之后,想关闭但是又不知道如何设置,那么下面小编就为大家分享XP系统关闭共享服务的步骤教程&#xff0…

用udp协议通讯时怎样得知目标机是否获得了数据包?_和相亲对象聊天,你属于UDP还是CDP?...

有人说和相亲对象聊天就像ping服务器每发一条消息就像发出一条Ping命令等待对方回复从而得到响应速度结果但是难受的是这个响应速度永远无法做到秒级少点几分钟多则几十分钟甚至几十个小时才有响应有时候真希望对方不要响应了就能判断此处Ping不通从此断了念想...你是否也像这位…

三星w系列vip服务器,高端人士候机专属特权 三星W2017一张行走的VIP卡

原标题:高端人士候机专属特权 三星W2017一张行走的VIP卡17年春运时间为1月13日至2月21日,如今春节假期已过,亿万人开始踏上了离乡之路追寻梦想。每年春运都给交通带来巨大压力,今年为期40天的春运预计全国发送旅客或超29亿人次。铁…

阿酷快捷键怎么使用_必须收藏!Linux用户必须知道的常用终端快捷键

点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐]简介:以下是一些每个 Linux 用户必须使用的键盘快捷键。使用命令行时,这些 Linux 快捷键将提升你的工作效率。你知道什么把专业用户和普通用户分开的吗?掌握键盘快捷键。好的&#xff01…

checkbox ajax 不选中的值,php – 无法通过ajax传递checkbox的值

我有从数据库收到的表://$id $_SESSION[staff_id];$teamResult getQuarter($leader_id);$count1 0;if (mysqli_num_rows($teamResult) > 0){?>1st Quarterwhile($row mysqli_fetch_array($teamResult)){$staff_id $row[staff_id];$username $row[usern…

3dmax天光渲染设置_【扮家家云渲染效果图】3dmax测试全局照明效果|干货教程...

首先打开场景文件,首先按快捷键8,打开环境和效果控制面板。下面有一个全局照明这样一个选项卡,有染色、级别、环境光三个参数。默认情况下染色为白色,级别为1,环境光为黑色。此时我们可以单击渲染,查看一下…

手写table用ajax遍历,原生js把数据循遍历到前端table

用前端框架去给表格赋值简直不要太容易和简单。但是原生js就会复杂一些了。特别是按钮事件的那个(“ )和 (’)特别让人脑瓜子疼。最近做了一个功能,里面用的就是原生js实现。写在js里面的代码:(用的ajax请求将文件保存到服务器,返回的数据遍历…

dbv mysql_MariaDB与MySQL对比 --- 对分布式事务的支持

本文最初于2016年底发表在我的个人微信公众号里面,现略有修订后发布在这里。本文的技术信息针对的是mysql-5.7.x和mariadb-10.1.9。MariaDB和MySQL两者对分布式事务的支持有所不同,总的来说MySQL的支持更好,是完备的和可靠的(尽管后来也陆续发…

centos7下载安装mysql步骤_Linux-centos7安装mysql步骤

Centos7.3 yum安装MySQL5.7.25扩展:在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。1 下载并安装MySQL官方的 Yum Repository[rootlocal…

mysql 常用命令的使用_MySQL基本命令

基操操作命令创建数据库CREATE DATABASE 数据库名;指定要操作的数据库USE 数据库名;创建数据表CREATE TABLE 数据表名;查看数据表SHOW CREATE TABLE 数据表名;使用DESCRIBE语句查看数据表DESCRIBE 数据表名;为数据表重…

织梦数据库支持mysql5.7_最新织梦DEDECMS5.7数据库说明文档

最新织梦DEDECMS5.7数据库说明文档:dede_arctype 栏目管理表ID int(10) 栏目编号(自动编号)reID int(10) 父栏目编号topID int(10)sortrank smallint(6) 排序编号typename varchar(30) 栏目名称typedir varchar(100) 栏目目录isdefault smallint(6) 栏目列表选项(1链…

mysql ddl dql_MySQL的DDL和DML及其DQL数据库操作

数据库的基本概念1. 数据库的英文单词: DataBase 简称 : DB2. 什么数据库?* 用于存储和管理数据的仓库。3. 数据库的特点:1. 持久化存储数据的。其实数据库就是一个文件系统2. 方便存储和管理数据3. 使用了统一的方式操作数据库 -…

python模糊图像清晰化_视频模糊图像处理

随着科学技术的不断发展和进步以及人们的安防意识不断加强,人们对于安防技术的要求越来越高。电子监控在许多领域中都得到了广泛的应用,如交通监控、军事侦查、公共场所安全防范等。清晰的图像能够准确地锁定犯罪证据和犯罪嫌疑人,能够清晰地…

mysql分页 disti_MySql查询性能优化

慢查询判定1.开启慢查询日志记录执行时间超过long_query_time 秒的sql语句2.通过show processlist命令查看线程执行状态3.通过explain解析sql了解执行状态慢查询优化是否向服务器请求列不必要的数据查询不需要的记录(limit),多表关联返回全部列,总是取出…

java atlas mysql_使用Atlas实现MySQL读写分离+MySQL-(Master-Slave)配置

参考博文:MySQL-(Master-Slave)配置 本人按照博友北在北方的配置已成功 我使用的是 mysql5.6.27版本。配置中 又进一步对mysql5.6的日志进行了了解 :mysql日志详细解析1.安装注意:只能安装在64位的Linux操作系统上,CentOS官方建…

mysql dts_云树·DTS - 产品系列 - 分布式数据库系统_MySQL数据库性能优化-爱可生...

灾备复制实现本地数据中心MySQL数据库高效复制及异地数据中心MySQL数据库容灾转移,从而确保在主数据中心故障或灾难时,备用数据中心数据的最大完整性。该服务通过对MySQL二进制日志进行解析、过滤、合并、压缩、并行回放等技术,准实时的在主备…

python利用matplotlib做饼图_python利用matplotlib库绘制饼图的方法示例

介绍matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。它的文档相当完备,并且 Gallery页面 中有上百幅缩略图&#xff0…

react同步请求_React中setState同步更新策略

setState 同步更新我们在上文中提及,为了提高性能React将setState设置为批次更新,即是异步操作函数,并不能以顺序控制流的方式设置某些事件,我们也不能依赖于this.state来计算未来状态。典型的譬如我们希望在从服务端抓取数据并且…

DVWA设置mysql_dvwa安装、配置、使用教程(Linux)

一、搭建LAMP环境二、安装DVWA2.1 下载dvwa2.2 解压安装将下载的应用解压到apache默认的主目录/var/www/html:unzip DVWA-master.zip -d /usr/www/html2.3 启用功能dvwa上的漏洞,需要些刻意的配置才能被利用。访问:http://172.0.0.1/dvwa如下…