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.pswp.cn/news/533256.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/533256.shtml
英文地址,請注明出處:http://en.pswp.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如下…