在Android和iOS上對于下拉刷新的處理方法:
在微信公眾號內,在面對下拉刷新這個問題上,Android和iOS都自己的表現方式:
iOS:

Android:

所以我們要給內容加載監聽器
function bindEvent() { document.addEventListener('touchstart', touchSatrtFunc, false); document.addEventListener('touchmove', touchMoveFunc, false); document.addEventListener('touchend', touchEndFunc, false); }注意:
document.addEventListener("事件名稱", 函數, false); function 某函數(event){ // 方法執行 }我們首先要獲取我們手指放在屏幕上的位置,
function touchSatrtFunc(evt) { try { var touch = evt.targetTouches[0]; //獲取第一個觸點 var x = Number(touch.pageX); //頁面觸點X坐標(起始位置)(相對于內容) var y = Number(touch.pageY); //頁面觸點Y坐標(起始位置)(相對于內容) var y1 = Number(touch.screenY); //頁面觸點Y坐標(起始位置)(相對于屏幕) //記錄觸點初始位置 startX1 = x; startY1 = y; startSY1 = y; } }如果我們只是iOS的話,那么我們只需要獲取相對于內容的起始位置就可以了,但是由于android中的下拉是整體下拉.那么相對于內容的位移就不大,這就需要相對于屏幕的位置的取值了
function touchMoveFunc(evt) { try { var scrollTop = $(".tui_container").scrollTop(); var touch = evt.targetTouches[0]; //獲取第一個觸點 var x = Number(touch.pageX); //頁面觸點X坐標 var y = Number(touch.pageY); //頁面觸點Y坐標(移動位置)(相對于內容) var y2 = Number(touch.screenY); //頁面觸點Y坐標(移動位置)(相對于屏幕) startX2 = x; startY2 = y; startSY2 = y2; if(scrollTop <= 0) { if(startSY2 - startSY1>100) { $(".loading_refresh").removeClass("disn"); setTimeout(function(){ window.location.reload(); },1500) } } } }手指在移動中執行的事件,獲取到的值是不斷變化的,當滿足相對第一個獲取到的值的偏差時執行事件刷新,這里的iOS和Android都試用.
function touchEndFunc(evt) { try { var top = evt.target.scrollTop; var touch = evt.changedTouches[0]; //獲取最后一個觸點 var startX3 = Number(touch.pageX); //頁面觸點X坐標 var startY3 = Number(touch.pageY); //頁面觸點Y坐標 var y3 = Number(touch.screenY); //頁面觸點Y坐標(移動位置)(相對于屏幕) startSY3=y3; var scrollTop = $(".tui_container").scrollTop(); } }這里可以獲取的是手指離開時獲取的位置,但是由于android是整體下拉,這刷新主要根據的就是滑動滾動的scrollTop(),android無法獲取到scrollTop==0時的情況,所以拋棄在手指滑動結束后執行的事件(我注釋掉了,就不寫了).
以上所述是小編給大家介紹的Android微信端的下拉刷新功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!
新聞熱點
疑難解答