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

给大家分享一个基于vue的移动端点击和长按事件库,项目于上周正式开源,今天来给大家分享一下

NPM

github

码云

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

vue-mb-touch

vue-mb-touch 是一个vue的移动端的事件项目,内置了点击(tap)事件,长按(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});

指令参数

参数名描述
tap是否开启tap事件,默认不开启,但是在tap和press都不开启时,则自动开启
press是否开启press事件,默认不开启
stop是否阻止事件冒泡,默认不阻止
prevent是否阻止游览器默认行为,默认不阻止
passive是否为passive监听器,如果有该参数,则阻止游览器默认行为无效
capture是否为捕获监听器,默认不是
proxy是否开启事件代理模式,默认不开启, 开启后台 在需要触发事件的目标元素上添加 data-proxy 即可

注意

如果是在vue封装的组件上使用 v-touch 指令, 在监听事件时,需要加上 native 参数

转载于:https://my.oschina.net/u/3644816/blog/3075428

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 我可以为您提供一些vue3的项目建议,例如:在线购物平台、社交媒体应用、在线教育平台、音乐播放器等等。这些项目都可以利用vue3的新特性,如Composition API、Teleport、Suspense等来提高性能和用户体验。您可以根据自己的兴趣和需求选择一个适合自己的项目。 ### 回答2: 近期非常流行的一种项目一个在线教育平台。这个平台使用Vue3作为前端框架,具备以下亮点: 1. 模块化设计:Vue3引入了Composition API,允许开发者将组件逻辑分解为多个可复用的函数,使代码更加清晰和可维护。 2. 快速响应:Vue3通过使用Proxy对象代替Vue2中的Object.defineProperty,提供了更快速的属性侦听和响应式系统,保证了用户操作的即时反馈。 3. 实时聊天功能:平台可以支持实时在线学习和教育交流,使用Vue3的响应式数据和Vue Router实现页面间即时通信和消息推送。 4. 个性化推荐:通过分析用户的学习兴趣,平台可以根据用户的历史记录和行为习惯,使用Vue3实现智能推荐功能,为用户推荐个性化的课程和学习资源。 5. 多媒体交互:平台支持在线视频课程和实时教学,在Vue3项目中,可以使用Vue Video Player和Vue Webcam等库进行多媒体内容的插入和播放。 6. 数据可视化:利用Vue3的响应式数据和数据绑定特性,可以使用AntV或Echarts等数据可视化库,在平台上展示学习进度、成绩统计和用户行为分析等图表。 7. 移动端适配:Vue3对移动端适配进行了优化,可以通过Vue CLI进行快速构建移动端应用,并使用Vue3的组件和布局系统实现响应式的移动端页面。 总之,以上是一个基于Vue3的在线教育平台的亮点。通过Vue3的模块化设计、高效响应和多媒体交互,以及个性化推荐、数据可视化和移动端适配等功能,可以为用户提供更好的学习体验和更高效的教育交流。 ### 回答3: 当然可以!以下是一个有亮点的Vue3项目的示例:一个在线旅游平台。 1. 智能推荐:该项目将使用数据分析和机器学习算法,为用户提供个性化的旅游推荐。通过收集用户的喜好、偏好和历史行程数据,系统能够准确地预测用户可能感兴趣的目的地和活动,并向他们展示最相关的推荐。 2. 实时聊天:该项目还集成了实时聊天功能,使用户能够与旅行顾问或其他用户进行实时的沟通和交流。此功能可为用户提供即时的建议、答疑解惑或与他人分享旅行经验,提升用户的旅行体验。 3. 3D虚拟旅游:利用Vue3的WebGL渲染功能,该项目还实现了逼真的3D虚拟旅游体验。用户可以通过鼠标或手势控制视角,与全景地图进行互动,实时查看目的地的景点、酒店和街道风景,仿佛置身于目的地一样。 4. 社区分享:为了鼓励用户在旅行过程中相互交流和分享,该项目还提供了社区分享功能。用户可以发布旅行日记、照片和评价,与其他用户分享自己的旅行经历,为他人提供有价值的参考和灵感。 5. 智能行程规划:该项目还拥有智能行程规划功能,用户只需输入旅行时间、预算和偏好,系统将自动生成最佳旅行路线和景点推荐。这使得用户能够迅速高效地规划旅行行程,最大限度地利用自己的时间和预算。 通过上述功能和亮点,该Vue3项目能够为旅行者提供一个完整的旅行解决方案,从个性化的推荐到实时的交流和沟通,再到流畅的虚拟旅游体验,旅行者将能够获得更好的旅行体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值