jquery在瀏覽器滾動條上的應用
Google閱讀器上有一個AJAX效果很不錯,就是閱讀專案時不需要翻頁,瀏覽器滾動條往下拉到一定位置時自動載入新的一批專案進來,一直到所有專案載入完為止。對於我來說再好不過了,因為我很不喜歡翻頁,尤其是輸入頁碼再定位到頁。要知道,資料量增加很頻繁時,要通過定位頁碼來找到目標資料似乎並沒有什麼意義。我覺得使用者體驗成熟的WEB應用程式應當引導使用者使用TAG或搜尋等功能來找到目標資料。至於瀏覽資料,尤其是瀏覽最新的資料,利用瀏覽器滾動條來載入,是很好的嘗試……
我試著用jquery來實現這個功能。先要得到滾動條的總長屬性值:scrollHeight,還有滾動條當前位置屬性值:scrollTop。然後通過計算,若當前值位於總長值三分之二時載入新資料。假設DOM上有一個元素為<div
id=”mypage”></div>,該元素overflow樣式為scroll,也就是元素中的內容溢位元素指定高度時啟用滾動條。利用jquery的load方法為元素載入一個已經存在的檔案,我假設它是table.html。這個檔案的內容可以是足以使瀏覽器滾屏的一張資料表。
<script type=”text/javascript” src=”jquery.js“>//載入jquery庫</script>
<script
type=”text/javascript”>
var hght=0;//初始化滾動條總長
var
top=0;//初始化滾動條的當前位置
$(document).ready(function(){//DOM的onload事件
$(”#mypage”).load(”table.html”);//table.html的內容被載入到mypage元素
$(”#mypage”).scroll( function() {//定義滾動條位置改變時觸發的事件。
hght=this.scrollHeight;//得到滾動條總長,賦給hght變數
top=this.scrollTop;//得到滾動條當前值,賦給top變數
});
});
setInterval(”cando();”,2000);//每隔2秒鐘呼叫一次cando函式來判斷當前滾動條位置。
function cando(){
if(top>parseInt(hght/3)*2)//判斷滾動條當前位置是否超過總長的2/3,parseInt為取整函式
show();//如果是,呼叫show函式載入內容。
}
function show(){
$.get(”table.html”,
function(data){//利用jquery的get方法得到table.html內容
$(”#mypage”).append(data);//用append方法追加內容到mypage元素。
hght=0;//恢復滾動條總長,因為$(”#mypage”).scroll事件一觸發,又會得到新值,不恢復的話可能會造成判斷錯誤而再次載入……
top=0;//原因同上。
});
}
</script>
<div id=”mypage”></div>
為什麼要隔2秒鐘呼叫一次判斷呢?因為只要$(”#mypage”).scroll事件一被觸發,就會影hght和top值,這個值可能總是滿足cando函式的判斷,也就是top值總是位於hght的三分之二。因此可能會多次載入造成伺服器負擔加重。而每載入一次後把hght和top值賦0,也是這個原因。
這段程式碼的效果就是隻要元素mypage的滾動條位置位於滾動條總長的三分之二時,追加table.html的內容到元素mypage中去。當然這樣執行是無休止地載入下去。在真正的AJAX運用中,table.html可以換成asp或php指令碼,接收get或post引數來進行處理,然後返回有意義的資料。jquery的get方法可以設定get方式的引數資料,比如:
$.get(”test.php”, { name: “boho”, id: “1″ } );
相當於http://hostlocal/test.php?name=boho&id=1這種形式的http訪問。然後通過get方法的回撥函式來獲取test.php輸出的內容:
$.get(”test.php”, {name:”boho”,id:”1″},function(data){
alert(”Data
Loaded: ” + data);
});
相關文章
- 瀏覽器滾動條高度的獲取瀏覽器
- 各大瀏覽器滾動條相容性問題瀏覽器
- 瀏覽器原生支援平滑滾動瀏覽器
- Ooui:在瀏覽器中執行.NET應用UI瀏覽器
- 『心善淵』Selenium3.0基礎 — 17、Selenium操作瀏覽器視窗的滾動條瀏覽器
- Win10系統下使用谷歌瀏覽器沒有滾動條如何解決Win10谷歌瀏覽器
- 如何利用 Chrome 瀏覽器實現滾動截圖Chrome瀏覽器
- Jquery外掛Nicescroll 製作漂亮的滾動條jQuery
- chrome,firfox,IE實現隱藏滾動條但是可以正常滾動(瀏覽器自帶隱藏屬性實現)Chrome瀏覽器
- jQuery判斷瀏覽器型別jQuery瀏覽器型別
- 根據瀏覽器的滑動條 固定導航欄瀏覽器
- 在瀏覽器上安裝 Vue Devtools工具瀏覽器Vuedev
- SAP Corbu Theme 在瀏覽器和 SAPGUI 應用中的使用場景ORB瀏覽器GUI
- 瀏覽器恢復滾動行為~瞭解一下瀏覽器
- Python/Sqlite 程式:瀏覽器應用還是桌面應用?PythonSQLite瀏覽器
- Chrome 瀏覽器修改 UA 模擬其它瀏覽器,包括移動瀏覽器Chrome瀏覽器
- 使用chrome瀏覽器驅動自動開啟瀏覽器Chrome瀏覽器
- 如何重新整理瀏覽器的應用快取?瀏覽器快取
- puppeteer中如何複用啟動中的瀏覽器瀏覽器
- 【譯】瀏覽器如何工作:在現代web瀏覽器場景的之下瀏覽器Web
- 在瀏覽器端用H5實現圖片壓縮上傳瀏覽器H5
- Web 應用安全性: 瀏覽器是如何工作的Web瀏覽器
- selenium中瀏覽器及對應的驅動(可下載)瀏覽器
- 在瀏覽器裡使用SAPGUI瀏覽器GUI
- 關於微軟 Edge 瀏覽器的 Tracking Prevention 特性在 Angular 應用中的影響微軟瀏覽器Angular
- 使用Skypack在瀏覽器上直接匯入ES模組瀏覽器
- 怎麼讓jupyter自動在瀏覽器彈出?瀏覽器
- Google:截至2023年3月Chrome瀏覽器在蘋果的Speedometer 2.1瀏覽器基準上增加了10%GoChrome瀏覽器蘋果
- 在不同裝置上如何使用代理IP:桌面端、移動端和瀏覽器瀏覽器
- scroll-view元件bindscroll例項應用:自定義滾動條View元件
- 條件註釋判斷瀏覽器版本瀏覽器
- 替代Edge瀏覽器?微軟開發新的瀏覽器:採用Chrome核心瀏覽器微軟Chrome
- 使用SAP WebIDE建立開發Java應用,並且在瀏覽器裡除錯WebIDEJava瀏覽器除錯
- css滾動條設定(選擇器)CSS
- 在瀏覽器上執行 VS Code——GitHub 熱點速覽 v.21.22瀏覽器Github
- "幹掉"手機用 UC 瀏覽器瀏覽 Web 網站,UC 瀏覽器強制在頁面底部嵌入噁心 iframe 廣告瀏覽器Web網站
- div滾動條樣式,水平滾動
- 隱藏滾動條保留滾動效果
- 解決移動裝置上iframe滾動條的問題