当前位置: 首页 > news >正文

vue检测页面手指滑动距离,执行回调函数,使用混入的语法,多个组件都可以使用

mixin.ts
定义滑动距离的变量和检测触摸开始的方法,滑动方法,并导出两个方法
sendTranslateX.value > 250 && sendTranslateY.value < -100是向上滑动,满足距离后执行回调函数func,并在一秒内不再触发,一秒后清空距离并允许再次触发。

// touch----mixins
import { ref } from "vue";
import { useRouter } from "vue-router";
const userEntityMixin = {setup() {const router = useRouter();let sendTranslateX = ref(0);let sendTranslateY = ref(0);let sendoriginX = 0;let sendoriginY = 0;const sendTouchStart = event => {sendoriginX = event.touches[0].screenX;sendoriginY = event.touches[0].screenY;};let jumpOnce = false;const sendTouchMoveEvent = (e, func) => {if (sendTranslateX.value > 250 && sendTranslateY.value < -100) {if (jumpOnce) {setTimeout(() => {jumpOnce = false;sendTranslateX.value = 0;sendTranslateY.value = 0;}, 1000);return;}// jumpToPage();func && func();jumpOnce = true;return;}let afterX = 0;let afterY = 0;afterX = e.changedTouches[0].screenX;afterY = e.changedTouches[0].screenY;sendTranslateX.value = afterX - sendoriginX;sendTranslateY.value = afterY - sendoriginY;};return {sendTouchStart,sendTouchMoveEvent};}
};
export default userEntityMixin;

使用混入的检测滑动,增加最外层标签的监听

<divclass="customer"@touchstart="sendTouchStart"@touchmove="sendTouchMoveEvent($event, jumpToPage)">
import userEntityMixin from "@/mixins/pageTouches.ts";
const { sendTouchStart, sendTouchMoveEvent } = userEntityMixin.setup();
const jumpToPage = () =>{console.log("回调函数");
}
http://www.lryc.cn/news/404891.html

相关文章:

  • opencv 优势
  • 1-如何挑选Android编译服务器
  • 【JS逆向课件:第十六课:Scrapy基础2】
  • 使用 PowerShell 自动化图像识别与鼠标操作
  • 组队学习——支持向量机
  • 【数据中心】数据中心的IP封堵防护:构建网络防火墙的基石
  • LangChain的使用详解
  • Modbus转BACnet/IP网关快速对接Modbus协议设备与BA系统
  • 万字长文之分库分表里无分库分表键如何查询【后端面试题 | 中间件 | 数据库 | MySQL | 分库分表 | 其他查询】
  • 如何查看jvm资源占用情况
  • 科研绘图系列:R语言TCGA分组饼图(multiple pie charts)
  • ReadAgent,一款具有要点记忆的人工智能阅读代理
  • 构建智能:利用Gradle项目属性控制构建行为
  • 如何通过smtp设置使ONLYOFFICE协作空间服务器可以发送注册邀请邮件
  • SQL labs靶场-SQL注入入门
  • HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 单选题序号4
  • 使用LSTM完成时间序列预测
  • 《数据结构:顺序实现二叉树》
  • 【HarmonyOS】HarmonyOS NEXT学习日记:六、渲染控制、样式结构重用
  • 【防火墙】防火墙NAT、智能选路综合实验
  • VUE之---slot插槽
  • linux、windows、macos,命令终端清屏
  • 【RaspberryPi】树莓派Matlab/Simulink支持包安装与使用
  • 嵌入式人工智能(10-基于树莓派4B的DS1302实时时钟RTC)
  • C++ | Leetcode C++题解之第275题H指数II
  • 编写DockerFile
  • TCP并发服务器多线程
  • 技术速递|C# 13:探索最新的预览功能
  • Python设计模式:巧用元类创建单例模式!
  • 构建自主可控的工业操作系统,筑牢我国工业安全堡垒