当前位置: 首页> 财经> 金融 > vue检测页面手指滑动距离,执行回调函数,使用混入的语法,多个组件都可以使用

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

时间:2025/7/9 23:49:49来源:https://blog.csdn.net/a12336487213/article/details/140441787 浏览次数:0次

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("回调函数");
}
关键字:vue检测页面手指滑动距离,执行回调函数,使用混入的语法,多个组件都可以使用

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: