JQuery頁面隨滾動(dòng)條動(dòng)態(tài)加載效果的簡(jiǎn)單實(shí)現(xiàn)(推薦)
Google閱讀器上有一個(gè)AJAX scollLoad效果很不錯(cuò),就是閱讀項(xiàng)目時(shí)不需要翻頁,瀏覽器滾動(dòng)條往下拉到一定位置時(shí)自動(dòng)加載新的一批項(xiàng)目進(jìn)來,一直到所有項(xiàng)目加載完為止。要知道,數(shù)據(jù)量增加很頻繁時(shí),要通過定位頁碼來找到目標(biāo)數(shù)據(jù)似乎并沒有什么意義。我覺得用戶體驗(yàn)成熟的WEB應(yīng)用程序應(yīng)當(dāng)引導(dǎo)用戶使用TAG或搜索等功能來找到目標(biāo)數(shù)據(jù)。至于瀏覽數(shù)據(jù),尤其是瀏覽最新的數(shù)據(jù),利用瀏覽器滾動(dòng)條來加載,是很好的嘗試……
我試著用jquery來實(shí)現(xiàn)這個(gè)功能。先要得到滾動(dòng)條的總長(zhǎng)屬性值:scrollHeight,還有滾動(dòng)條當(dāng)前位置屬性值:scrollTop。然后通過計(jì)算,若當(dāng)前值位于總長(zhǎng)值三分之二時(shí)加載新數(shù)據(jù)。假設(shè)DOM上有一個(gè)元素為,該元素overflow樣式為scroll,也就是元素中的內(nèi)容溢出元素指定高度時(shí)啟用滾動(dòng)條。利用jquery的load方法為元素加載一個(gè)已經(jīng)存在的文件,我假設(shè)它是table.html。這個(gè)文件的內(nèi)容可以是足以使瀏覽器滾屏的一張數(shù)據(jù)表。
jquery.js“>// 加載jquery庫(kù)
var hght=0;//初始化滾動(dòng)條總長(zhǎng) var top=0;//初始化滾動(dòng)條的當(dāng)前位置 $(document).ready(function() {//DOM的onload事件 $(”#mypage”).load(”table.html”);//table.html的內(nèi)容被加載到 mypage元素 $(”#mypage”).scroll( function() {//定義滾動(dòng)條位置改變時(shí)觸發(fā)的事件。 hght=this.scrollHeight;//得到滾動(dòng)條總長(zhǎng),賦給hght變量 top=this.scrollTop;//得到滾動(dòng)條當(dāng)前值,賦給top變量 }); }); setInterval(”cando();”,2000);//每隔2秒鐘調(diào)用一次cando函數(shù)來判斷當(dāng)前滾動(dòng)條位置。 function cando(){ if(top>parseInt(hght/3)*2)//判斷滾動(dòng)條當(dāng)前位置是否超過總長(zhǎng)的2 /3,parseInt為取整函數(shù) show();//如果是,調(diào)用show函數(shù)加載內(nèi)容。 } function show(){ $.get(”table.html”, function(data){//利用jquery的get方法得到table.html內(nèi)容 $(”#mypage”).append(data);//用append方法追加內(nèi)容到mypage元素。 hght=0;//恢復(fù)滾動(dòng)條總長(zhǎng),因?yàn)?(”#mypage”).scroll事件一觸發(fā),又會(huì)得到新值,不恢復(fù)的話可能會(huì)造成判斷錯(cuò)誤而再次加載…… top=0;//原因同上。 }); }
為什么要隔2秒鐘調(diào)用一次判斷呢?因?yàn)橹灰?(”#mypage”).scroll事件一被觸發(fā),就會(huì)影hght和top值,這個(gè)值可能總是滿足cando 函數(shù)的判斷,也就是top值總是位于hght的三分之二。因此可能會(huì)多次加載造成服務(wù)器負(fù)擔(dān)加重。而每加載一次后把hght和top值賦0,也是這個(gè)原因。
這段代碼的效果就是只要元素mypage的滾動(dòng)條位置位于滾動(dòng)條總長(zhǎng)的三分之二時(shí),追加table.html的內(nèi)容到元素mypage 中去。當(dāng)然這樣運(yùn)行是無休止地加載下去。在真正的AJAX運(yùn)用中,table.html可以換成asp或php腳本,接收get或post參數(shù)來進(jìn)行處理,然后返回有意義的數(shù)據(jù)。jquery的get方法可以設(shè)置get方式的參數(shù)數(shù)據(jù),
比如:
$.get(”test.php”, { name: “boho”, id: “1″ } );
相當(dāng)于http://hostlocal/test.php?name=boho&id=1
這種形式的http訪問。然后通過get方法的回調(diào)函數(shù)來獲取test.php輸出的內(nèi)容:
$.get(”test.php”, {name:”boho”,id:”1″},function(data){ alert(”Data Loaded: ” + data); });
以上這篇JQuery頁面隨滾動(dòng)條動(dòng)態(tài)加載效果的簡(jiǎn)單實(shí)現(xiàn)(推薦)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- 使用PHP+AJAX讓W(xué)ordPress動(dòng)態(tài)加載文章的教程
- PHP通過反射動(dòng)態(tài)加載第三方類和獲得類源碼的實(shí)例
- php+ajax實(shí)現(xiàn)無刷新動(dòng)態(tài)加載數(shù)據(jù)技術(shù)
- js/jquery控制頁面動(dòng)態(tài)加載數(shù)據(jù) 滑動(dòng)滾動(dòng)條自動(dòng)加載事件的方法
- jQuery實(shí)現(xiàn)頁面滾動(dòng)時(shí)動(dòng)態(tài)加載內(nèi)容的方法
- PHP實(shí)現(xiàn)簡(jiǎn)單ajax Loading加載功能示例
- php+ajax+jquery實(shí)現(xiàn)點(diǎn)擊加載更多內(nèi)容
- jQuery+PHP+ajax實(shí)現(xiàn)微博加載更多內(nèi)容列表功能
- PHP+jQuery實(shí)現(xiàn)滾屏無刷新動(dòng)態(tài)加載數(shù)據(jù)功能詳解
相關(guān)文章
jQuery動(dòng)態(tài)星級(jí)評(píng)分效果實(shí)現(xiàn)方法
這篇文章主要介紹了jQuery動(dòng)態(tài)星級(jí)評(píng)分效果實(shí)現(xiàn)方法,涉及jquery動(dòng)態(tài)操作頁面元素樣式的相關(guān)技巧,效果華麗大氣,是一款非常優(yōu)秀的特效源碼,需要的朋友可以參考下2015-08-08JQuery入門——移除綁定事件unbind方法概述及應(yīng)用
在DOM對(duì)象的實(shí)踐操作中,存在用于綁定事件的bind方法,也會(huì)有相應(yīng)的移除綁定事件unbind方法,接下來將介紹unbind方法的使用,感興趣的朋友可以不要錯(cuò)過了啊,或許本文對(duì)你有所幫助2013-02-02jQuery實(shí)現(xiàn)倒計(jì)時(shí)(倒計(jì)時(shí)年月日可自己輸入)
本篇文章主要對(duì)jQuery實(shí)現(xiàn)倒計(jì)時(shí)進(jìn)行了實(shí)例分析。并附上實(shí)例源碼,有興趣的朋友可以下載源碼調(diào)試運(yùn)行試試看,希望對(duì)大家有所幫助2016-12-12jQuery實(shí)現(xiàn)的回車觸發(fā)按鈕事件功能示例
這篇文章主要介紹了jQuery實(shí)現(xiàn)的回車觸發(fā)按鈕事件功能,涉及jQuery事件響應(yīng)及頁面元素屬性動(dòng)態(tài)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-03-03artDialog雙擊會(huì)關(guān)閉對(duì)話框的修改過程分享
artDialog,一個(gè)jquery的對(duì)話框插件但是在使用時(shí)發(fā)現(xiàn)鼠標(biāo)雙擊時(shí)會(huì)自半對(duì)話框,下面與大家分享下具體的修改過程,感興趣的朋友可以參考下2013-08-08詳談jQuery.load()和Jsp的include的區(qū)別
下面小編就為大家?guī)硪黄斦刯Query.load()和Jsp的include的區(qū)別。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-04-04jQuery實(shí)現(xiàn)訂單提交頁發(fā)送短信功能前端處理方法
這篇文章主要介紹了jQuery實(shí)現(xiàn)訂單提交頁發(fā)送短信功能前端處理方法,涉及jQuery響應(yīng)鼠標(biāo)事件及針對(duì)頁面元素的樣式與字符串正則操作相關(guān)技巧,需要的朋友可以參考下2016-07-07jQuery自定義數(shù)值抽獎(jiǎng)活動(dòng)代碼
這篇文章主要為大家詳細(xì)介紹了jQuery自定義數(shù)值抽獎(jiǎng)活動(dòng)的相關(guān)代碼,具有一定的參考價(jià)值,感興趣的朋友可以參考一下2016-06-06jQuery彈出層插件popShow(改進(jìn)版)用法示例
這篇文章主要介紹了jQuery彈出層插件popShow(改進(jìn)版)用法,對(duì)比前文分析了popShow插件的使用方法,需要的朋友可以參考下2017-01-01