ios從iframe層跳轉新頁面后再返回,出現iframe層中點擊事件暫時無效

? ? ? ?因為項目需要做了一個單頁面中有一個全頁面覆蓋層的效果,就是在一個頁面里做出來好像有兩個頁面的效果。由于第二頁面是作為一個多頁的通用頁,就采取了iframe嵌套的方式實現。在pc端調試的時候沒有什么問題。但在蘋果手機真機調試過程中發(fā)現從iframe層跳轉到其他頁面,再返回原先頁面后,iframe層的點擊事件失效,而主頁面層的點擊事件沒有問題。

后面查了資料發(fā)現ios系統(tǒng)對點擊事件不是那么敏感,于是將點擊事件改成了觸摸事件。

點擊失效事件是解決了,但又會出現新的問題,即用戶的上下滑動會一不小心就觸發(fā)了觸摸事件。于是再次增加補?。豪胻ouchstart 和touchend 做一個是否是滑動事件的判斷。在touchstart 中記錄下手指觸摸的初始位置,再在touchend 的函數中,獲取手指離開時的event.changedTouches[0].clientY和event.changedTouches[0].clientX;從而判斷是否為滑動事件。如果初始位置X、Y數值與結束位置相同,就運行目標語句。這樣一個利用滑動函數去模擬的點擊事件的操作就實現了。

不多說了放代碼

初始代碼

<button?class="go_share"?:data-link_data="item.link_data"? v-on:click="copy_goods">分享</button>



一次修改代碼(如果頁面是小窗口不需要滑動,就這樣就可以了)

<button?class="go_share"?:data-link_data="item.link_data"? @touchstart.stop.prevent="copy_goods"?v-on:click="copy_goods">分享</button>



二次修改升級

<button?class="go_share"?:data-link_data="item.link_data"?@touchstart="touch_start"?@touchend.stop.prevent="copy_goods"?v-on:click="copy_goods">分享</button>

methods:{

touch_start:function(e){

????????????????????this.touch=true;

????????????????????this.startY=e.changedTouches[0].clientY;

????????????????????this.startX=e.changedTouches[0].clientX;

????????????????},

copy_goods:?function?(event)?{

????????????????????moveY=event.changedTouches[0].clientY-this.startY;

????????????????????moveX=event.changedTouches[0].clientX-this.startX;

????????????????????if(!this.touch||moveY+moveX==0){ //填所需執(zhí)行的語句}

????}

}

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容