国产精品免费虐久久久久影院_亚洲日韩av一区二区三区久久_一个人的视频全免费在线观看www_国产黄色福利青草精品在线_久久机热国产精品免费观看_日本一二三区免费在线_好亚洲亚洲人成综合网站图片_亚洲中文字幕超碰无码资源_日本人天天干夜夜操b视频_动漫女扒开腿爆乳无遮挡gif

FASTGPT 喵言AI 續(xù)費系統(tǒng)
當前位置:
首頁 / 資訊 / 技術(shù)文章

移動端點透問題該怎么處理?

2018-04-21深圳網(wǎng)站建設(shè)公司網(wǎng)聯(lián)科技發(fā)布者:平臺


在移動端開發(fā)過程中,難免會出現(xiàn)點透問題。

那么什么是點透?

如下圖所示:



B元素上有半透明紅色遮蓋層A,黃色B元素內(nèi)有可點擊鏈接C。在移動端,點擊事件通常采用touch相關(guān)事件來獲取高效率。在點擊遮蓋層A的時候,touch事件觸發(fā)使得A遮蓋層隱藏,而黃色B元素內(nèi)有可點擊鏈接C在遮蓋層隱藏之后被點擊,觸發(fā)click跳轉(zhuǎn)到c鏈接對應(yīng)的頁面,這就是移動端點透問題發(fā)生的一種典型情況。往往這種結(jié)果都不是我們想要的。

哪些情況下會出現(xiàn)移動端點透問題?

1.A/B兩個層上下z軸重疊。

2.上層的A點擊后消失或移開。(這一點很重要)

3.B元素本身有默認click事件(如a標簽) B綁定了click事件。

為甚么會出現(xiàn)點透問題?

在這里就跟網(wǎng)聯(lián)科技小編一起捋一捋移動端點擊事件的先后順序問題吧!

事件的觸發(fā)時間按由早到晚排列為:touchstart 早于 touchend 早于 click。

當手指觸摸到屏幕的時候,系統(tǒng)生成兩個事件,一個是touch 一個是click,touch先執(zhí)行,touch執(zhí)行完成后,A遮蓋層從文檔樹上面消失了,而且由于移動端click還有延遲200-300ms的關(guān)系,當系統(tǒng)要觸發(fā)click的時候,發(fā)現(xiàn)在用戶點擊的位置上面,目前離用戶最近的黃色元素B,所以就直接把click事件作用在B元素上面了.

點透問題解決方案:

方案一:

網(wǎng)聯(lián)科技小編小個人最推薦的是統(tǒng)一代碼風(fēng)格,在對點擊時效沒有高要求的情況,建議事件統(tǒng)一使用click事件,對于非游戲開發(fā)的情況,click的時間延遲能夠給人更好的過度體驗。

方案二:

對時效性要求高的情況下,如果b元素并沒有默認的click事件的情況(沒有a鏈接),統(tǒng)一使用touch事件,更有利于用戶反應(yīng)速度上的體驗。

方案三:

來得很直接github上有個fastclick可以完美解決
引入fastclick.js,因為fastclick源碼不依賴其他庫所以你可以在原生的js前直接加上
window.addEventListener( "load", function() {
FastClick.attach( document.body );
}, false );
或者有zepto或者jqmjs里面加上
$(function() {
FastClick.attach(document.body);
});
當然require的話就這樣:
var FastClick = require(
fastclick);
FastClick.attach(document.body, options);

了解更多網(wǎng)站建設(shè)知識

掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待您的聲音

解答:網(wǎng)站建設(shè)、APP開發(fā)、小程序開發(fā)

網(wǎng)聯(lián)科技是一家以提供網(wǎng)站建設(shè)、APP、小程序開發(fā)、CRM系統(tǒng)開發(fā)為主的互聯(lián)網(wǎng)開發(fā)公司。以客戶需求為導(dǎo)向,客戶利益為出發(fā)點,結(jié)合自身設(shè)計及專業(yè)建站優(yōu)勢,為客戶提供從基礎(chǔ)建設(shè)到營銷推廣的一整套解決方案,探索并實現(xiàn)客戶商業(yè)價值較大化,為所有謀求發(fā)展的企業(yè)貢獻全部力量。

網(wǎng)聯(lián)科技微信公眾號

相關(guān)信息