最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue中使用touchstart、touchmove、touchend與click沖突問題

 更新時(shí)間:2023年01月23日 11:25:36   作者:吃~貨  
這篇文章主要介紹了Vue中使用touchstart、touchmove、touchend與click沖突問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

使用touchstart、touchmove、touchend與click沖突

今天做項(xiàng)目,突然發(fā)現(xiàn)了這個(gè)問題。就是在移動(dòng)端,一個(gè)元素既注冊有滑動(dòng)事件,又注冊有點(diǎn)擊事件時(shí)就會(huì)出現(xiàn)一些問題。

比如我就不知道滑動(dòng)事件的優(yōu)先級是大于點(diǎn)擊事件的,而當(dāng)我們只想執(zhí)行點(diǎn)擊事件而不想觸發(fā)滑動(dòng)時(shí)間時(shí),就必須做個(gè)處理

事件執(zhí)行順序

touchstart →touchmove →touchend→click

所以當(dāng)我們執(zhí)行點(diǎn)擊事件時(shí),其實(shí)在執(zhí)行點(diǎn)擊事件之前,就已經(jīng)執(zhí)行了滑動(dòng)事件了。如果滑動(dòng)事件的邏輯和點(diǎn)擊事件的邏輯不一樣,這樣就會(huì)出現(xiàn)問題。

上網(wǎng)找了很久終于找到一個(gè)方法,就是通過活動(dòng)距離來判斷,當(dāng)滑動(dòng)距離大于自己設(shè)定的距離時(shí),就執(zhí)行滑動(dòng)事件,否則就不執(zhí)行。

touchstart (e) {
      this.startX = e.touches[0].clientX
    },
    touchmove (e) {
      this.moveX = e.touches[0].clientX
      // 如果有滑動(dòng)距離,則將isTouch設(shè)為true
      if (this.moveX) {
        this.isTouch = true
      }
    },
touchEnd () {
      if (this.isTouch) {
        if (this.startX - this.moveX < -50 && this.moveX) { // 右滑觸發(fā)
          this.getData()
        } else if (this.startX - this.moveX > 50 && this.moveX) { //左滑觸發(fā)
          this.getData()
        }
      }
      this.startX = 0
      this.moveX = 0
      this.isTouch = false
    },

這樣設(shè)置后就不會(huì)影響點(diǎn)擊事件了。一開始我還以為是異步問題,搞了半天原來是事件的優(yōu)先級問題。

觸摸事件(touchstart、touchmove和touchend)

觸摸事件(touch)會(huì)在用戶手指放在屏幕上面的時(shí)候、在屏幕上滑動(dòng)的時(shí)候或者是從屏幕上移開的時(shí)候出發(fā)。

下面具體說明

  • touchstart事件:當(dāng)手指觸摸屏幕時(shí)候觸發(fā),即使已經(jīng)有一個(gè)手指放在屏幕上也會(huì)觸發(fā)。
  • touchmove事件:當(dāng)手指在屏幕上滑動(dòng)的時(shí)候連續(xù)地觸發(fā)。
  • touchend事件:當(dāng)手指從屏幕上離開的時(shí)候觸發(fā)。

除了常見的DOM屬性,觸摸事件還包含下面三個(gè)用于跟蹤觸摸的屬性。也就是存在于事件的默認(rèn)參數(shù)event中。

  • touches:表示當(dāng)前跟蹤的觸摸操作的touch對象的數(shù)組。
  • targetTouches:特定于事件目標(biāo)的Touch對象的數(shù)組。
  • changeTouches:表示自上次觸摸以來發(fā)生了什么改變的Touch對象的數(shù)組。

每個(gè)Touch對象包含的屬性如下。

  • clientX:觸摸目標(biāo)在視口中的x坐標(biāo)。
  • clientY:觸摸目標(biāo)在視口中的y坐標(biāo)。
  • identifier:標(biāo)識觸摸的唯一ID。
  • pageX:觸摸目標(biāo)在頁面中的x坐標(biāo)。
  • pageY:觸摸目標(biāo)在頁面中的y坐標(biāo)。
  • screenX:觸摸目標(biāo)在屏幕中的x坐標(biāo)。
  • screenY:觸摸目標(biāo)在屏幕中的y坐標(biāo)。
  • target:觸目的DOM節(jié)點(diǎn)目標(biāo)。

實(shí)際 的使用:

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vuejs對象常用操作之取對應(yīng)的值、取key和value值、轉(zhuǎn)數(shù)組及合并等

    Vuejs對象常用操作之取對應(yīng)的值、取key和value值、轉(zhuǎn)數(shù)組及合并等

    最近在學(xué)Vue和javascript感覺js的好多方法都不太清楚,這里徹底總結(jié)下,這篇文章主要給大家介紹了關(guān)于Vuejs對象常用操作之取對應(yīng)的值、取key和value值、轉(zhuǎn)數(shù)組及合并等的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • vue如何轉(zhuǎn)換時(shí)間格式為年月日時(shí)分秒和年月日(補(bǔ)零)

    vue如何轉(zhuǎn)換時(shí)間格式為年月日時(shí)分秒和年月日(補(bǔ)零)

    這篇文章主要介紹了vue如何轉(zhuǎn)換時(shí)間格式為年月日時(shí)分秒和年月日(補(bǔ)零),具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Vue 動(dòng)態(tài)添加路由及生成菜單的方法示例

    Vue 動(dòng)態(tài)添加路由及生成菜單的方法示例

    這篇文章主要介紹了Vue 動(dòng)態(tài)添加路由及生成菜單的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • vue 微信掃碼登錄(自定義樣式)

    vue 微信掃碼登錄(自定義樣式)

    這篇文章主要介紹了vue 微信掃碼登錄(自定義樣式),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • vue3清空reactive的四種方式

    vue3清空reactive的四種方式

    本文主要介紹了vue3清空reactive的四種方式,包含使用?Object.assign,使用?Object.keys?和?for...in?循環(huán),使用?delete?操作符和重新賦值4種,感興趣的可以了解一下
    2024-03-03
  • vue-video-player?播放m3u8視頻流的實(shí)現(xiàn)

    vue-video-player?播放m3u8視頻流的實(shí)現(xiàn)

    本文主要介紹了vue-video-player?播放m3u8視頻流的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • Vue 中使用 typescript的方法詳解

    Vue 中使用 typescript的方法詳解

    Typescript 5年內(nèi)的熱度隨時(shí)間變化的趨勢,整體呈現(xiàn)一個(gè)上升的趨勢。也說明ts越來越&#65039;受大家的關(guān)注了。這篇文章主要介紹了Vue 中使用 typescript的方法詳解,需要的朋友可以參考下
    2020-02-02
  • Vue中Element?UI組件庫使用方法詳解

    Vue中Element?UI組件庫使用方法詳解

    ElementUI是Vue的UI框架,提供了豐富的組件,方便快速開發(fā)頁面,本文詳細(xì)介紹了ElementUI的安裝、使用方法以及常見組件的說明,包括基礎(chǔ)組件、布局組件、選擇框組件、輸入框組件、下拉框組件等,需要的朋友可以參考下
    2024-11-11
  • vue.js中使用echarts實(shí)現(xiàn)數(shù)據(jù)動(dòng)態(tài)刷新功能

    vue.js中使用echarts實(shí)現(xiàn)數(shù)據(jù)動(dòng)態(tài)刷新功能

    這篇文章主要介紹了vue.js中使用echarts實(shí)現(xiàn)數(shù)據(jù)動(dòng)態(tài)刷新功能,需要的朋友可以參考下
    2019-04-04
  • Vue項(xiàng)目開發(fā)常見問題和解決方案總結(jié)

    Vue項(xiàng)目開發(fā)常見問題和解決方案總結(jié)

    這篇文章主要介紹了Vue項(xiàng)目開發(fā)常見問題和解決方案總結(jié),幫助大家更好的利用vue開發(fā),感興趣的朋友可以了解下
    2020-09-09

最新評論

吴桥县| 镇江市| 盐池县| 苍溪县| 阳山县| 天台县| 葵青区| 阿尔山市| 定安县| 土默特左旗| 分宜县| 廊坊市| 大余县| 广饶县| 盐边县| 墨脱县| 石门县| 儋州市| 西乌珠穆沁旗| 上饶市| 通城县| 扶余县| 井研县| 恩施市| 饶阳县| 兴业县| 方城县| 衡阳市| 枝江市| 梁山县| 汤原县| 乌鲁木齐县| 通海县| 深水埗区| 东光县| 南京市| 神池县| 喀什市| 尤溪县| 措勤县| 湘西|