Vue3记录一个简易微信右滑逻辑的思路(一)

简介: Vue3记录一个简易微信右滑逻辑的思路

今天项目需求需要实现一个类似于微信右滑显示额外选项的功能,记录一下实现思路。

一.搭建简易的页面


image.png

对应的代码,界面使用了tailwindCSS,代码非常简单,就是普通的定位,关键的定位已经用黄色框框圈出。right的值为div删除的宽度,其它的样式这里不再过多赘述。

image.png

二.前置条件


这里先来梳理一下思路。

  1. 首先,我们需要给这删除按钮组件打上ref,因为之后我们需要用到这个div的实例。(wrapperref是只是为了优化代码,我们暂时不需要)
  2. 这里我们需要用到TouchEvent这个事件,我们在浏览器开发者工具测试时,需要调节自适应到手机的模式才可以看到效果。

image.png

我们把@touchstart@touchend这两个原生事件绑定到和朋友这个div身上。这里不要迷惑,这两个事件和@click事件一样,是js原生的事件。并不是我们自己自定义的事件,当检测到用户在屏幕上按下=时,会自动传递$event到相对于的函数参数中。

image.png

三.设计touchstart函数


image.png

在此之前,我想解释一下我的NOTE:为什么要写考虑用户只用了一根手指的情况呢?

首先让我们打印一下传递过来的event事件对象有哪些属性。

image.png

在这里最关键的属性就是这个changedTouches这个属性,它的值是一个数组。先来看MDN是怎么解释这个属性的。

image.png

有点抽象是吧?我来解释一下这鬼话到底想表达什么意思。

首先我们需要理解这个属性为什么是一个数组。当我们的手指去接触屏幕的时候,浏览器会捕获你这一时间一共几根指头接触到了屏幕。我们可以根据这个值去做一些不同的判断。最简单例子就是,假设这个数组changedTouches.length为1,那么说明我只用了一根手指触摸屏幕,那么我设计函数的时候就可以判断

if(changedTouches.length>0 && changedTOuches.length<2)
{
TODO...
}

我就可以根据用户触摸了几根手指去做相应的几指操作,用过触控板的都知道双指单指三指等都对应不同的事件。其实你可以就这样理解这个属性为什么要设计为一个数组。

在这里我们只考虑用户只用了一根手指触摸屏幕滑动的情况。

  1. 对应下面的代码,我们已经获取了用户刚开始触摸屏幕时,这个点,在这里我们需要看一下这个touchPoint身上哪些属性。

image.png

这个对象身上最为关键的属性就是圈出来的这个。

image.png

额外技能补充


  1. clientXclientY

先来看一下MDN怎么解释的。

image.png

这里我们需要重点理解这句话,注意一定要理解这个--〉无论页面是否水平滚动(垂直滚动对应着clientY)

在这里我们用图说话,这里红色箭头的点表示用户触摸时,我们获取到的那个点坐标,黄色箭头指向的那段距离,就是clientX

image.png

clientY也不必多说,就是这段距离


image.png

tips:这里的距离都是相对于左上角坐标为(0,0)的,这是设计时默认的规定

image.png

  1. pageXpageY

这两个虽然我们目前用不到,但是在这里拓展着说一下。还是先看MDN的解释。

相关文章
|
7月前
|
小程序 JavaScript 前端开发
【微信小程序】--WXML & WXSS & JS 逻辑交互介绍(四)
【微信小程序】--WXML & WXSS & JS 逻辑交互介绍(四)
|
7月前
|
存储 小程序 前端开发
uniapp微信小程序不强制登陆的逻辑(模仿大厂登陆)
uniapp微信小程序不强制登陆的逻辑(模仿大厂登陆)
228 0
|
JavaScript 小程序 前端开发
微信小程序|逻辑判断
微信小程序|逻辑判断
168 0
|
开发工具
微信小游戏开发实战5-重复执行和逻辑循环的区别
本篇主要内容包括了解帧的概念,以及理解重复执行和逻辑循环这两种循环积木块之间的区别。 如果你没有任何的游戏开发经验,欢迎阅读我的“人人都能做游戏”系列教程,它会手把手的教你做出自己的第一个小游戏。
117 0
|
JavaScript
Vue3记录一个简易微信右滑逻辑的思路(二)
Vue3记录一个简易微信右滑逻辑的思路
Vue3记录一个简易微信右滑逻辑的思路(二)
|
小程序
微信公众号关注或取关后再处理我们自己的业务逻辑
在做微信小程序或公众号开发的有时候,难免会遇到需要在用户关注或取关公众号后处理业务逻辑的需求,只需要几步就可以搞定。
164 0
微信公众号关注或取关后再处理我们自己的业务逻辑
|
小程序
微信小程序代码逻辑复用(二)—— 解决方案
微信小程序代码逻辑复用(二)—— 解决方案
680 0
微信小程序代码逻辑复用(二)—— 解决方案
|
开发工具
微信小游戏开发实战5-重复执行和逻辑循环的区别
**这是小蚂蚁游戏开发公众号原创的第40篇。 本篇主要内容包括了解帧的概念,以及理解重复执行和逻辑循环这两种循环积木块之间的区别。
140 0
微信小游戏开发实战5-重复执行和逻辑循环的区别
|
前端开发 安全 开发者
微信中微信授权逻辑
开篇我先吐槽一下微信开发者的文档,千年不更新。 文档中写的拒绝和允许都会触发回调,然后我测试拒绝的时候就不会触发回调。
420 0
微信中微信授权逻辑
|
2月前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
728 7