Android微信端的下拉刷新功能
在Android和iOS上對(duì)于下拉刷新的處理方法:
在微信公眾號(hào)內(nèi),在面對(duì)下拉刷新這個(gè)問題上,Android和iOS都自己的表現(xiàn)方式:
iOS:

Android:

所以我們要給內(nèi)容加載監(jiān)聽器
function bindEvent() {
document.addEventListener('touchstart', touchSatrtFunc, false);
document.addEventListener('touchmove', touchMoveFunc, false);
document.addEventListener('touchend', touchEndFunc, false);
}
注意:
document.addEventListener("事件名稱", 函數(shù), false);
function 某函數(shù)(event){
// 方法執(zhí)行
}
我們首先要獲取我們手指放在屏幕上的位置,
function touchSatrtFunc(evt) {
try {
var touch = evt.targetTouches[0]; //獲取第一個(gè)觸點(diǎn)
var x = Number(touch.pageX); //頁(yè)面觸點(diǎn)X坐標(biāo)(起始位置)(相對(duì)于內(nèi)容)
var y = Number(touch.pageY); //頁(yè)面觸點(diǎn)Y坐標(biāo)(起始位置)(相對(duì)于內(nèi)容)
var y1 = Number(touch.screenY); //頁(yè)面觸點(diǎn)Y坐標(biāo)(起始位置)(相對(duì)于屏幕)
//記錄觸點(diǎn)初始位置
startX1 = x;
startY1 = y;
startSY1 = y;
}
}
如果我們只是iOS的話,那么我們只需要獲取相對(duì)于內(nèi)容的起始位置就可以了,但是由于android中的下拉是整體下拉.那么相對(duì)于內(nèi)容的位移就不大,這就需要相對(duì)于屏幕的位置的取值了
function touchMoveFunc(evt) {
try {
var scrollTop = $(".tui_container").scrollTop();
var touch = evt.targetTouches[0]; //獲取第一個(gè)觸點(diǎn)
var x = Number(touch.pageX); //頁(yè)面觸點(diǎn)X坐標(biāo)
var y = Number(touch.pageY); //頁(yè)面觸點(diǎn)Y坐標(biāo)(移動(dòng)位置)(相對(duì)于內(nèi)容)
var y2 = Number(touch.screenY); //頁(yè)面觸點(diǎn)Y坐標(biāo)(移動(dòng)位置)(相對(duì)于屏幕)
startX2 = x;
startY2 = y;
startSY2 = y2;
if(scrollTop <= 0) {
if(startSY2 - startSY1>100) {
$(".loading_refresh").removeClass("disn");
setTimeout(function(){
window.location.reload();
},1500)
}
}
}
}
手指在移動(dòng)中執(zhí)行的事件,獲取到的值是不斷變化的,當(dāng)滿足相對(duì)第一個(gè)獲取到的值的偏差時(shí)執(zhí)行事件刷新,這里的iOS和Android都試用.
function touchEndFunc(evt) {
try {
var top = evt.target.scrollTop;
var touch = evt.changedTouches[0]; //獲取最后一個(gè)觸點(diǎn)
var startX3 = Number(touch.pageX); //頁(yè)面觸點(diǎn)X坐標(biāo)
var startY3 = Number(touch.pageY); //頁(yè)面觸點(diǎn)Y坐標(biāo)
var y3 = Number(touch.screenY); //頁(yè)面觸點(diǎn)Y坐標(biāo)(移動(dòng)位置)(相對(duì)于屏幕)
startSY3=y3;
var scrollTop = $(".tui_container").scrollTop();
}
}
這里可以獲取的是手指離開時(shí)獲取的位置,但是由于android是整體下拉,這刷新主要根據(jù)的就是滑動(dòng)滾動(dòng)的scrollTop(),android無法獲取到scrollTop==0時(shí)的情況,所以拋棄在手指滑動(dòng)結(jié)束后執(zhí)行的事件(我注釋掉了,就不寫了).
以上所述是小編給大家介紹的Android微信端的下拉刷新功能,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
android實(shí)現(xiàn)指紋識(shí)別功能
這篇文章主要介紹了android指紋識(shí)別功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09
Android 回調(diào)詳解及簡(jiǎn)單實(shí)例
這篇文章主要介紹了Android 回調(diào)詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-01-01
Android自定義View實(shí)現(xiàn)shape圖形繪制
這篇文章主要為大家詳細(xì)介紹了Android使用自定義View實(shí)現(xiàn)shape圖形繪制,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01
Android 沉浸式狀態(tài)欄與隱藏導(dǎo)航欄實(shí)例詳解
沉浸式狀態(tài)欄是指狀態(tài)欄與ActionBar顏色相匹配,隱藏導(dǎo)航欄,就是將導(dǎo)航欄隱藏,去掉下面的黑條。下面通過實(shí)例給大家詳解android沉浸式狀態(tài)欄與隱藏導(dǎo)航欄,感興趣的朋友一起看看2017-07-07
詳解Android 7.0 Settings 加載選項(xiàng)
本篇文章主要介紹了Android 7.0 Settings 加載選項(xiàng),Android 7.0 Settings頂部多了一個(gè)建議選項(xiàng),多了個(gè)側(cè)邊欄,操作更加便捷了,有興趣的可以了解一下。2017-02-02
Android PowerManagerService省電模式策略控制
這篇文章主要介紹了Android PowerManagerService省電模式策略控制,本文基于前兩篇文章的基礎(chǔ)介紹展開詳情,感興趣的小伙伴可以參考一下2022-08-08
Android關(guān)于SeekBar無法點(diǎn)擊到最大值問題解決方法記錄(推薦)
這篇文章主要介紹了Android關(guān)于SeekBar無法點(diǎn)擊到最大值問題解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
Android控件ViewPager實(shí)現(xiàn)帶有動(dòng)畫的引導(dǎo)頁(yè)
這篇文章主要為大家詳細(xì)介紹了Android控件ViewPager實(shí)現(xiàn)帶有動(dòng)畫的引導(dǎo)頁(yè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
Android使用ViewFlipper實(shí)現(xiàn)上下滾動(dòng)消息
這篇文章主要為大家詳細(xì)介紹了Android使用ViewFlipper實(shí)現(xiàn)上下滾動(dòng)消息,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07
android操作SQLite增刪改減實(shí)現(xiàn)代碼
android操作SQLite增刪改減實(shí)現(xiàn)代碼,學(xué)習(xí)android的朋友可以參考下。2010-11-11

