iscroll實作下拉和上拉刷新的實例教程
在原生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中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

熱門話題

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

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

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

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

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

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

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

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