成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

調(diào)試手記:iOS Safari 瀏覽器觸摸事件 targetTouches 屬性被瀏覽器重用

big_cat / 833人閱讀

摘要:問題描述將第三方觸控庫刪掉使用原生事件后發(fā)現(xiàn)一個,具體表現(xiàn)為在中響應(yīng)失效。經(jīng)研究發(fā)現(xiàn),在多次發(fā)出事件期間,重用了這個對象和里面對象,導(dǎo)致緩存被改動,無法正確記錄歷史數(shù)據(jù)。

問題描述

將第三方觸控庫刪掉使用原生事件后發(fā)現(xiàn)一個 bug,具體表現(xiàn)為在 iOS Safari 中 touch 響應(yīng)失效。

調(diào)試結(jié)果

使用 Chrome 驗證功能正常,打 log 發(fā)現(xiàn)業(yè)務(wù)代碼中緩存了 targetTouches 屬性,但是下一次 touchmove 事件到來時緩存的 targetTouches 被改變了,clientX 和 clientY 變?yōu)樾轮?,?dǎo)致無法正確計算手指滑動距離。經(jīng)研究發(fā)現(xiàn),Safari 在多次發(fā)出 touch 事件期間,重用了 event.targetTouches 這個 touchList 對象和里面 Touch 對象,導(dǎo)致緩存被改動,無法正確記錄歷史數(shù)據(jù)。

修正方案

不緩存 targetTouches 屬性,而是將關(guān)心的數(shù)據(jù)復(fù)制下來,演示代碼如下:

this.lastTouches_ = map(evt.targetTouches, function(el) {
    return {
        clientX: el.clientX,
        clientY: el.clientY,
    };
});

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/80630.html

相關(guān)文章

  • 移動端 Touch 事件的使用與思考(1)

    摘要:在中與值是相等的,在微信中兩個數(shù)值不等,但單位應(yīng)該也不一樣。測試過程中及微信內(nèi)置瀏覽器都不支持這些屬性,模擬器可以。也是一個對象,對于事件這個對象列出在此次事件中新增加的觸點。 本文主要介紹 TouchEvent 相關(guān)的一些對象與屬性如 Touch, TouchList, touhces, targetTouches 等,以及使用的注意點和誤區(qū)。 觸摸事件有以下幾種類型:touchst...

    elva 評論0 收藏0
  • 移動前端知識總結(jié)

    摘要:基礎(chǔ)知識頁面窗口自動調(diào)整到設(shè)備寬度,并禁止用戶縮放頁面忽略將頁面中的數(shù)字識別為電話號碼忽略平臺中對郵箱地址的識別當網(wǎng)站添加到主屏幕快速啟動方式,可隱藏地址欄,僅針對的版本以后,上已看不到效果將網(wǎng)站添加到主屏幕快 meta基礎(chǔ)知識H5頁面窗口自動調(diào)整到設(shè)備寬度,并禁止用戶縮放頁面 忽略將頁面中的數(shù)字識別為電話號碼 忽略Android平臺中對郵箱地址的識別 當網(wǎng)站添加到主屏幕快...

    gotham 評論0 收藏0
  • 移動前端知識總結(jié)

    摘要:基礎(chǔ)知識頁面窗口自動調(diào)整到設(shè)備寬度,并禁止用戶縮放頁面忽略將頁面中的數(shù)字識別為電話號碼忽略平臺中對郵箱地址的識別當網(wǎng)站添加到主屏幕快速啟動方式,可隱藏地址欄,僅針對的版本以后,上已看不到效果將網(wǎng)站添加到主屏幕快 meta基礎(chǔ)知識H5頁面窗口自動調(diào)整到設(shè)備寬度,并禁止用戶縮放頁面 忽略將頁面中的數(shù)字識別為電話號碼 忽略Android平臺中對郵箱地址的識別 當網(wǎng)站添加到主屏幕快...

    MartinDai 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<