国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

移動端-點透問題 巧妙解決

MockingBird / 932人閱讀

摘要:移動端經常出現點透,至于怎么出現的請大家去看一下實現的源碼。點透是什么你可能碰到過在列表頁面上創建一個彈出層,彈出層有個關閉的按鈕,你點了這個按鈕關閉彈出層后后,這個按鈕正下方的內容也會執行點擊事件或打開鏈接。這個被定義為這是一個點透現象。

移動端經常出現點透,至于怎么出現的請大家去看一下zepto實現tap的源碼。

1、“點透”是什么

你可能碰到過在列表頁面上創建一個彈出層,彈出層有個關閉的按鈕,你點了這個按鈕關閉彈出層后后,這個按鈕正下方的內容也會執行點擊事件(或打開鏈接)。這個被定義為這是一個“點透”現象。

2.為什么會出現點透

zepto的tap通過兼聽綁定在document上的touch事件來完成tap事件的模擬的,及tap事件是冒泡到document上觸發的

再點擊完成時的tap事件(touchstarttouchend)需要冒泡到document上才會觸發,而在冒泡到document之前,用戶手的接觸屏幕(touchstart)和離開屏幕(touchend)是會觸發click事件的,因為click事件有延遲觸發(這就是為什么移動端不用click而用tap的原因)(大概是300ms,為了實現safari的雙擊事件的設計),
所以在執行完tap事件之后,彈出來的選擇組件馬上就隱藏了,此時click事件還在延遲的300ms之中,當300ms到來的時候,click到的其實不是完成而是隱藏之后的下方的元素,如果正下方的元素綁定的有click事件此時便會觸發,如果沒有綁定click事件的話就當沒click,但是正下方的是input輸入框(或者select選擇框或者單選復選框),點擊默認聚焦而彈出輸入鍵盤,也就出現了上面的點透現象

3.點透的解決方法:

方案一:來得很直接github上有個fastclick可以完美解決

引入fastclick.js,因為fastclick源碼不依賴其他庫所以你可以在原生的js前直接加上

 window.addEventListener( "load", function() {
    FastClick.attach( document.body );
 }, false );

或者有zepto或者jqm的js里面加上

 $(function() {
    FastClick.attach(document.body);
 });

當然require的話就這樣:

 var FastClick = require("fastclick");
 FastClick.attach(document.body, options);

方案二:用touchend代替tap事件并阻止掉touchend的默認行為preventDefault()

 $("#cbFinish").on("touchend", function (event) {
   //很多處理比如隱藏什么的
    event.preventDefault();
 });

方案三:延遲一定的時間(300ms+)來處理事件

 $("#cbFinish").on("tap", function (event) {
    setTimeout(function(){
    //很多處理比如隱藏什么的
    },320);
 }); 

這種方法其實很好,可以和fadeInIn/fadeOut等動畫結合使用,可以做出過度效果

理論上上面的方法可以完美的解決tap的點透問題,如果真的倔強到不行,用click

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/93539.html

相關文章

  • 點透問題解決

    摘要:問題封裝的事件由和實現,事件在端無效使用中事件在中該版本的點透問題已經解決可以放心使用,但是端仍然無效。一、問題描述實際學習與工作中可能會有這樣的需求:在移動web中給有重疊的兩個元素都添加了點擊事件,當觸發上方的元素的時候同時也會透過該元素觸發下面的元素。這就是點透,然而這并不是我想要的效果。二、例子下面通過多種方式來模擬感受點透:<divclass="tap"&...

    番茄西紅柿 評論0 收藏0
  • 移動-點透解決方法

    摘要:移動端經常出現點透,至于怎么出現的請大家去看一下實現的源碼。點透是什么你可能碰到過在列表頁面上創建一個彈出層,彈出層有個關閉的按鈕,你點了這個按鈕關閉彈出層后后,這個按鈕正下方的內容也會執行點擊事件或打開鏈接。這個被定義為這是一個點透現象。 移動端經常出現點透,至于怎么出現的請大家去看一下zepto實現tap的源碼。 1、點透是什么 你可能碰到過在列表頁面上創建一個彈出層,彈出層有個關...

    cpupro 評論0 收藏0
  • 移動橫向滑屏之輪播圖

    摘要:圖片描述移動端的輪播圖可以有很多方式實現,最常見的可以使用定位手指事件。四手指移入移出開關定時器 圖片描述 移動端的輪播圖可以有很多方式實現,最常見的可以使用定位 + 手指事件。但是我這里介紹的是 CSS3 中的 2d 變換和手指事件,因為變換屬性的代碼更加簡潔優雅 一. 移動端的準備工作 * { padding: 0; margin: 0; } img { d...

    Hydrogen 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<