<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          vue-mb-touchVue 移動端事件組件

          聯(lián)合創(chuàng)作 · 2023-09-19 18:11

          vue-mb-touch

          vue-mb-touch 是一個vue的移動端的事件項(xiàng)目,內(nèi)置了點(diǎn)擊(press)事件,長按(press)事件

          安裝

          npm install vue-mb-touch

          使用方法

          1. 安裝
          2. 引入
          3. 在需要監(jiān)聽tap或者press的元素上添加 v-touch 指令 ,后面就可以 像監(jiān)聽 click 事件 一樣 使用v-on:tap="fn"的方式監(jiān)聽tap和press事件了

          示例

          <template>
            <div  v-touch.press.tap @tap="tap" @press="press">
             
            </div>
          </template>
          
          
          <script lang="ts">
          import { Component, Vue } from "vue-property-decorator";
          import vueMobileTouch from "vue-mb-touch";
          
          Vue.use(vueMobileTouch);
          
          @Component
          export default class Home extends Vue {
            public tap() {
              /** tap  */
            }
          
            public press(e: Event) {
              /** press  */
            }
          
            public data() {
              return {
               
              };
            }
          }
          </script>
          
          
          ````
          > 開啟代理模式
          
          
          ````vue
          
          <template>
            <ul  v-touch.proxy @tap="tap($event)" >
              <li data-proxy data-index="1"></li>
              <li data-proxy data-index="2"></li>
              <li data-proxy data-index="3"></li>
            </ul>
          </template>
          
          
          <script lang="ts">
          import { Component, Vue } from "vue-property-decorator";
          import vueMobileTouch from "vue-mb-touch";
          
          Vue.use(vueMobileTouch);
          
          @Component
          export default class Home extends Vue {
            public tap(e: event) {
              const currentTarget = e.currentTarget as HTMLElement;
              console.log(currentTarget.tagName.toLowerCase());   // li
              console.log(JSON.stringify(currentTarget.dataset)); // {proxy: "", index: "1"}
            }
          
          
            public data() {
              return {
               
              };
            }
          }
          </script>

          全局配置

          在引入 vue-mb-touch 時(shí),可以傳入一個全局配置對象。該對象目前支持 maxDistance 與 pressTime, maxDistance 用于手指在屏幕上移動多長距離內(nèi)可觸發(fā)事件默認(rèn)10,pressTime 用于手機(jī)按住屏幕多長時(shí)間觸發(fā)長按事件,默認(rèn)650。具體操作如下:

          import Vue from 'vue';
          import vueMobileTouch from "vue-mb-touch";
          
          Vue.use(vueMobileTouch, {maxDistance: 10,pressTime: 650});
          

          指令參數(shù)

          參數(shù)名 描述
          tap 是否開啟tap事件,默認(rèn)不開啟,但是在tap和press都不開啟時(shí),則自動開啟
           press  是否開啟press事件,默認(rèn)不開啟
          stop 是否阻止事件冒泡,默認(rèn)不阻止
          prevent 是否阻止游覽器默認(rèn)行為,默認(rèn)不阻止
          passive 是否為passive監(jiān)聽器,如果有該參數(shù),則阻止游覽器默認(rèn)行為無效
          capture 是否為捕獲監(jiān)聽器,默認(rèn)不是
          proxy 是否開啟事件代理模式,默認(rèn)不開啟, 開啟后臺 在需要觸發(fā)事件的目標(biāo)元素上添加  data-proxy 即可

          注意

          如果是在vue封裝的組件上使用 v-touch 指令, 在監(jiān)聽事件時(shí),需要加上 native 參數(shù)

          瀏覽 24
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  狠狠操91| 黄色成人视频网站在线观看 | 免费麻豆国产一区二区三区四区 | 日韩一级家庭乱伦片免费看 | 爱爱免费小视频 |