给大家分享一个vue的移动端的事件项目

给大家分享一个基于vue的移动端点击和长按事件库,项目于上周正式开源,没怎么去看,今天上npm看了一下上周的下载量居然有36,顿时有那么一点动力来给大家分享一下

NPM

github

码云

第一次加入开源分享的大军,请大家多多支持哦!觉得好的话,请大家给个Star

vue-mb-touch

vue-mb-touch 是一个vue的移动端的事件项目,内置了点击(press)事件,长按(press)事件

安装

npm install vue-mb-touch
复制代码

使用方法

  1. 安装
  2. 引入
  3. 在需要监听tap或者press的元素上添加 v-touch 指令 ,后面就可以 像监听 click 事件 一样 使用v-on:tap="fn"的方式监听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>


复制代码

开启代理模式

<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 时,可以传入一个全局配置对象。该对象目前支持 maxDistance 与 pressTime, maxDistance 用于手指在屏幕上移动多长距离内可触发事件默认10,pressTime 用于手机按住屏幕多长时间触发长按事件,默认650。具体操作如下:

import Vue from 'vue';
import vueMobileTouch from "vue-mb-touch";

Vue.use(vueMobileTouch, {maxDistance: 10,pressTime: 650});

复制代码
我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章