首頁 web前端 js教程 iscroll實作下拉和上拉刷新的實例教程

iscroll實作下拉和上拉刷新的實例教程

Jun 27, 2017 pm 04:02 PM
下拉 重新整理

在原生APP的开发中,有一个常见的功能,就是下拉刷新的功能,这个想必大家都是知道的,但是原生APP的开发,有一个很大的问题就是,你每次更新一些功能,就要用户重新下载一次版本,尤其是在iOS系统中,新版本还需要经过审核才能通过,这就使得版本的更新受到很大的限制,而如果我们改用网页来展示,那么只要改变服务器中网页的内容,那么就等于修改了APP的内容展示,有更灵活的满足更新版本。

概述

但是有一点就是,如何让web实现的页面,看起来更像是原生的APP呢,首先要想办法解决的就是下拉刷新的功能,对于这个功能,我并没有在网络上找到很好的解决方法,并且,我个人对手机端的开发,经验还是有些欠缺,这里就不罗列使用js实现web页下拉刷新的功能了。

这里,我基于iscroll5的基础上,进行了少量的改动源代码,进而实现了下拉属性的功能,所以分享在这里,仅供参考。

关于iscroll插件

iscroll插件(官网地址)当前最新的版本是version 5版本,相对于版本4,我个人觉得,版本5变得更具有灵活性,虽然移除了一些特定的事件,特定的对外接口,但是对于使用该插件的程序员们,这个插件变得更具有操控性,这是我比较喜欢的一种插件类型,但同时,也发现了一些问题,事件中的touchend事件,不存在了(确切的说,不能说是不存在),只是被拦截了,所以一些基本的事件,都被进行了拦截,而导致无法监听到touchend事件,只能检测到scrollEnd事件,scrollEnd事件,是在页面滚动停止时,才会被触发的,所以~~

所以,根据版本5,无法检测到,是不是下拉了一段距离之后,松开时的动作了,对此,我也检查了源代码,也没有发现这个功能的实现方法,不得已,只能对源代码进行了少量的修改,所以就有了本篇文章。

修改后插件的使用

基本上,该方法并没有进行多少的修改,只是添加了两个事件的监听类型,一个叫做“slideDown”,表示下拉被触发,另一个叫做“slideUp”,表示上拉被触发。

其他,实例化中,各属性都没有进行更改,所以,关于iscroll的使用,直接参考官网的说明:iscroll官网。

这里,我只对新添加的事件,添加一个demo测试,这个demo是一个很简单的demo,也只是用来说明新添加事件的用法的,如果需要用到下拉刷新或者上拉刷新的朋友,可以根据本demo自行修改。





下拉刷新



  • Pretty row 1

  • Pretty row 2

  • Pretty row 3

  • Pretty row 4

  • Pretty row 5

  • ...
  • Pretty row 46

  • Pretty row 47

  • Pretty row 48

  • Pretty row 49

  • Pretty row 50





上拉刷新


CSS部分這裡就不多說了,有興趣的可以直接儲存該網頁,然後把相關程式碼分開即可,對應的JS和CSS程式碼,分別為iscroll.js和iscroll .css文件,其他的bootstrap和jQuery都是我懶的原因,加入的框架。

對上述的結構進行實例化:

var myScroll,
upIcon = $("#up-icon"),
downIcon = $("#down-icon ");

myScroll = new IScroll('#wrapper', { probeType: 3, mouseWheel: true });//probeType屬性,表示此插件,可以監聽scroll事件myScroll.on("scroll" ,function(){ //scroll事件,可以用來控制上拉和下拉之後顯示的模組中,
//樣式和內容展示的部分的改變。 # maxY = this.maxScrollY - y,
downHasClass = downIcon.hasClass("reverse_icon"),
upHasClass = upIcon.hasClass("reverse_icon");
if(y >= 40){
!downHasClass && downIcon.addClass("reverse_icon"); return "";
}else if(y < 40 && y > 0){
downHasClass && downIcon.removeClass("reverse_icon"); return "";
}
if(maxY >= 40){
!upHasClass && upIcon.addClass("reverse_icon"); return "";
}else if(maxY < 40 && maxY >=0){
upHasClass && upIcon.removeClass("reverse_icon"); return "";
}
});

myScroll.on("slideDown", function(){ //當下拉,使得邊界超出時,如果手指從螢幕移開,則會觸發該事件
if(this.y > 40){ //取得內容於螢幕拉開的距離
//可以在該部分中,修改樣式,並且僅限ajax或其他的一些操作
//此時只是為了能演示該功能,只添加了一個alert功能。
//並且,由於alert會阻塞後續的動畫效果,所以,
//新增了後面的一行程式碼,移除先前新增上的一個樣式
alert("slideDown");
upIcon.removeClass("reverse_icon");
}
});

myScroll.on("slideUp",function(){ if(this.maxScrollY - this.y > 40 ){ //與slideDown相同的,maxScrollY表示文檔區域的最大高度
alert("slideUp");
upIcon.removeClass("reverse_icon")
# }
});


同時,注意一點,當你使用ajax添加或刪除一些新的元素時,要重新myScroll.refresh()一下,會重新計算maxScrollY區域的,以保證區域覆蓋的正確性,這些東西,如果你真的使用到,那麼肯定可以碰到這些問題的,所以,這裡是我話多了~~~

#OK,程式碼就是這樣了,在寫這個文章的時候,旁邊沒有Android的設備,所以,沒有進行測試,只測試了IOS8的設備,所以,如果有問題,請指出,謝謝~~

以上是iscroll實作下拉和上拉刷新的實例教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

在 iPhone 上刷新網頁的 6 種方法 在 iPhone 上刷新網頁的 6 種方法 Feb 05, 2024 pm 02:00 PM

當您在iPhone上瀏覽網頁時,載入的內容會暫時存儲,只要瀏覽器應用程式保持開啟。然而,網站會定期更新內容,因此刷新頁面是清除舊資料並查看最新發佈內容​​的有效方法。這樣,您可以始終獲得最新的資訊和體驗。如果您想在iPhone上刷新頁面,以下貼文將向您解釋所有方法。如何在Safari上刷新網頁[4種方法]有幾種方法可以刷新您在iPhone上的Safari瀏覽器App上查看的頁面。方法1:使用「刷新」按鈕刷新您在Safari瀏覽器上開啟的頁面的最簡單方法是使用瀏覽器標籤列上的「刷新」選項。如果Safa

F5刷新金鑰在Windows 11中不起作用 F5刷新金鑰在Windows 11中不起作用 Mar 14, 2024 pm 01:01 PM

您的Windows11/10PC上的F5鍵是否無法正常運作? F5鍵通常用於刷新桌面或資源管理器或重新載入網頁。然而,我們的一些讀者報告說,F5鍵正在刷新他們的計算機,並且無法正常工作。如何在Windows11中啟用F5刷新?要刷新您的WindowsPC,只需按下F5鍵即可。在某些筆記型電腦或桌上型電腦上,您可能需要按下Fn+F5組合鍵才能完成刷新操作。為什麼F5刷新不起作用?如果按下F5鍵無法刷新您的電腦或在Windows11/10上遇到問題,可能是因為功能鍵被鎖定。其他潛在原因包括鍵盤或F5鍵

如何快速刷新網頁? 如何快速刷新網頁? Feb 18, 2024 pm 01:14 PM

頁面刷新在我們日常的網路使用中非常常見,當我們訪問一個網頁後,有時會遇到一些問題,例如網頁加載不出來或顯示不正常等。這時候我們通常會選擇刷新頁面來解決問題,那麼要如何快速刷新頁面呢?下面我們就來探討頁面刷新的快捷鍵。頁面刷新快捷鍵是一種透過鍵盤操作來快速刷新目前網頁的方法。在不同的作業系統和瀏覽器中,頁面刷新的快捷鍵可能有所不同。下面我們以常見的W

react頁面傳值刷新後值消失怎麼辦 react頁面傳值刷新後值消失怎麼辦 Dec 29, 2022 am 11:11 AM

react頁面傳值刷新後值消失的解決方法:1、刷新頁面,查看state裡面的資料是否會清空;2、透過「const name = location.query.name;const id = location.query.id;」方法在跳轉連結中增加參數,即可在實現傳參的同時刷新頁面後資料不會遺失。

鍵盤刷新快速鍵是哪個 鍵盤刷新快速鍵是哪個 Feb 25, 2024 pm 10:38 PM

鍵盤刷新快捷鍵是哪個隨著電腦技術的發展,鍵盤成為我們日常工作和生活中不可或缺的設備。鍵盤的功能遠不止輸入文字,它也常用來操作電腦的各種功能,提升我們的工作效率。而鍵盤的快速鍵更是讓我們更快速、更方便地完成各種操作。在平常使用電腦的過程中,我們常常會遇到需要頁面重新整理的情況。當我們打開網頁或軟體運行時,有時頁面會出現卡頓或無法載入的情況,這時候會刷新頁面

如何在Vue專案中使用路由實現頁面刷新和快取控制? 如何在Vue專案中使用路由實現頁面刷新和快取控制? Jul 22, 2023 am 11:13 AM

如何在Vue專案中使用路由實現頁面刷新和快取控制?在Vue專案開發中,使用路由實現頁面刷新和快取控制是非常常見的需求。本文將介紹如何在Vue專案中使用路由來實現頁面刷新和快取控制,並給出對應的程式碼範例。路由配置首先,在Vue專案中需要使用vue-router來進行路由設定。可以透過npm安裝vue-router,並在main.js中進行引入和設定。 impor

win11右鍵刷新的方法 win11右鍵刷新的方法 Dec 28, 2023 pm 02:29 PM

刷新是我們使用電腦時經常會進行的操作,透過刷新可以快速顯示我們對介面、顯示、圖示等屬性的設定情況,但是很多朋友在使用win11時發現右鍵選單中沒有刷新了,其實這是因為win11增加了一個選單,需要先進入才可以刷新。 win11怎麼右鍵刷新1、在win11系統中,右鍵選單進行了更改,我們右鍵點擊空白處將無法找到刷新。 2.取而代之的是,我們需要在右鍵選單中找到最下方的「showmoreoptions」3、進入「showmoreoptions」之後,就可以找到刷新了。 4.此外,其實我們不需要使用右鍵刷新

Win10開機桌面無限刷新該怎麼辦? Win10開機桌面無限刷新的解決方案 Win10開機桌面無限刷新該怎麼辦? Win10開機桌面無限刷新的解決方案 Jul 08, 2023 am 09:33 AM

近期有客户在应用Win10系统软件的情况下,发觉有时候桌面会一直在全自动刷新,如何也根本停不下来,并且在大家视频观看听歌时也一直在刷,十分影响到应用感受,那麼计算机开机无线网络刷新怎么办呢,下边小编就把Win10开机桌面无限刷新的处置方式告知大伙儿。计算机开机无线网络刷新该怎么办?1、大家进到桌面后,鼠标点击点一下菜单栏标志。2、在开启的界面中选择【资源管理器】。3、进入页面后,大家点一下【windows任务管理器】,选择【结束任务】。4、进行后返回桌面鼠标右键选择菜单栏。5、这时大家点一下【运

See all articles