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;

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

<div
		class="customer"
		@touchstart="sendTouchStart"
		@touchmove="sendTouchMoveEvent($event, jumpToPage)"
	>
import userEntityMixin from "@/mixins/pageTouches.ts";
const { sendTouchStart, sendTouchMoveEvent } = userEntityMixin.setup();
const jumpToPage = () =>{
	console.log("回调函数");
}

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-16 21:14:01       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-16 21:14:01       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-16 21:14:01       57 阅读
  4. Python语言-面向对象

    2024-07-16 21:14:01       68 阅读

热门阅读

  1. echarts忽略Null值:使用echarts的connectNulls

    2024-07-16 21:14:01       22 阅读
  2. 知识蒸馏和知识图谱相结合的大模型微调方案

    2024-07-16 21:14:01       21 阅读
  3. uni-app开发时自定义导航栏

    2024-07-16 21:14:01       23 阅读
  4. 新质生产力和新质战斗力如何深度耦合

    2024-07-16 21:14:01       20 阅读
  5. 【Python】Arcpy将excel点生成shp文件

    2024-07-16 21:14:01       21 阅读
  6. Linux批量更改文件后缀名

    2024-07-16 21:14:01       19 阅读
  7. android gradle 开发与应用(一) : Gradle基础

    2024-07-16 21:14:01       17 阅读
  8. Python学习4---迭代器和生成器的区别

    2024-07-16 21:14:01       24 阅读
  9. Linux基本命令(续)

    2024-07-16 21:14:01       21 阅读
  10. HTTPS

    HTTPS

    2024-07-16 21:14:01      19 阅读
  11. Vue3 基础

    2024-07-16 21:14:01       22 阅读
  12. redis-缓存三剑客

    2024-07-16 21:14:01       15 阅读