完美解決手機(jī)瀏覽器頂部下拉出現(xiàn)網(wǎng)頁(yè)源或刷新的問(wèn)題
問(wèn)題如下圖所示:
一般處理此類(lèi)問(wèn)題都會(huì)有一個(gè)屬性:”event.preventDefault()”,但是如果直接使用會(huì)導(dǎo)致頁(yè)面的內(nèi)部滾動(dòng)也失效導(dǎo)致不能滾動(dòng),我所處理的方式也與其類(lèi)似。
因?yàn)榛瑒?dòng)區(qū)域是向走的,所以滑動(dòng)塊的頂部到瀏覽器頂部的距離最大為0(其余為負(fù)值[$('#bodycthead').offset().top]),當(dāng)為0的時(shí)候說(shuō)明已經(jīng)回到了頂部,繼續(xù)向下拉動(dòng)的時(shí)候就不應(yīng)該有反應(yīng),可以禁止默認(rèn)滑動(dòng),而向上拉動(dòng)的時(shí)候應(yīng)該取消默認(rèn)的滑動(dòng),所以應(yīng)該將”event.preventDefault()”封裝成一個(gè)函數(shù)。
需要做的就是判斷是向上滑動(dòng)還是向下滑動(dòng),當(dāng)接觸屏幕的時(shí)候記錄一個(gè)Y值(scroll_start = e.changedTouches[0].clientY;),移動(dòng)的時(shí)候會(huì)產(chǎn)生一個(gè)Y值(e.changedTouches[0].clientY),兩個(gè)值得差值(e.changedTouches[0].clientY-scroll_start)如果是正值說(shuō)明是向下滑動(dòng),如果是負(fù)值則是向上滑動(dòng)。
添加事件監(jiān)聽(tīng):
var scroll_start=0;//定義滑動(dòng)時(shí)的起點(diǎn) function handler(){//禁止默認(rèn)滑動(dòng)函數(shù) event.preventDefault(); } document.addEventListener("touchstart",function(e){ scroll_start = e.changedTouches[0].clientY;//設(shè)置起點(diǎn)為觸摸時(shí)的點(diǎn) if($('#bodycthead').offset().top==0){//如果觸摸時(shí)是滑動(dòng)塊在頂部則禁用默認(rèn)滑動(dòng) document.addEventListener('touchmove', handler, false); } }); document.addEventListener("touchmove",function(e){ $("title").html(e.changedTouches[0].clientY-scroll_start); if($('#bodycthead').offset().top==0){//想做的是中斷滑動(dòng)并禁用默認(rèn)滑動(dòng),暫時(shí)沒(méi)找到中斷的方法 document.addEventListener('touchmove', handler, false); } if((e.changedTouches[0].clientY-scroll_start)<0){//如果是向上滑動(dòng)則恢復(fù)默認(rèn)滑動(dòng) document.removeEventListener('touchmove', handler, false); } });
暫時(shí)沒(méi)做到中斷滑動(dòng)并禁止默認(rèn)滑動(dòng)效果,歡迎大家指導(dǎo)!
以上這篇完美解決手機(jī)瀏覽器頂部下拉出現(xiàn)網(wǎng)頁(yè)源或刷新的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Layui實(shí)現(xiàn)多條件查詢(xún)的示例代碼
本文主要介紹了Layui實(shí)現(xiàn)多條件查詢(xún),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12JavaScript實(shí)現(xiàn)五種不同煙花特效
這篇文章主要給大家?guī)?lái)五個(gè)好看的基于 HTML+CSS+JS 的煙花特效,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)JavaScript有一定的幫助,需要的可以參考一下2022-01-01使用JS實(shí)現(xiàn)抖音上很火的圣誕樹(shù)的示例代碼
圣誕節(jié)快到了,經(jīng)常會(huì)在抖音上刷到圣誕樹(shù)的視頻,所以本文小編給大家介紹了如何使用JS實(shí)現(xiàn)圣誕樹(shù),文章通過(guò)代碼示例給大家介紹的非常詳細(xì),感興趣的小伙伴跟著小編一起來(lái)看看吧2023-12-12JS刷新當(dāng)前頁(yè)面的幾種方法總結(jié)
本篇文章主要是對(duì)JS刷新當(dāng)前頁(yè)面的幾種方法進(jìn)行了詳細(xì)的總結(jié)介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-12-12微信小程序使用webview打開(kāi)pdf文檔以及顯示網(wǎng)頁(yè)內(nèi)容的方法步驟
在線查看PDF文件,已經(jīng)是很常見(jiàn)的需求了,下面這篇文章主要給大家介紹了關(guān)于微信小程序使用webview打開(kāi)pdf文檔以及顯示網(wǎng)頁(yè)內(nèi)容的方法步驟,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07javascript中的 object 和 function小結(jié)
JavaScript的面向?qū)ο笫腔谠蔚?,所有?duì)象都有一條屬于自己的原型鏈。Object與Function可能很多看Object instanceof Function , Function instanceof Object都為true而迷惑,所以首先看下對(duì)象的實(shí)例。2016-08-08js跨瀏覽器實(shí)現(xiàn)將字符串轉(zhuǎn)化為xml對(duì)象的方法
將字符串轉(zhuǎn)化為xml對(duì)象需要注意的是該死的ie多版本的問(wèn)題,具體實(shí)現(xiàn)如下,感興趣的朋友不妨參考下本文,希望對(duì)大家有所幫助2013-09-09JavaScript實(shí)現(xiàn)簡(jiǎn)單網(wǎng)頁(yè)版計(jì)算器
這篇文章主要介紹了JavaScript實(shí)現(xiàn)簡(jiǎn)單網(wǎng)頁(yè)版計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08