您是否曾想过按住按钮几秒钟才能在Vue应用程序中执行某个功能?
网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、微信小程序定制开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了云城免费建站欢迎大家使用!您是否曾想在应用程序上创建一个按钮,通过按一次(或按住按钮的整个输入)来清除单个输入?
如果你曾有过这些想法,很好,我也是。那么恭喜你看到了这篇文章。
本文将解释如何通过按下(或按住)按钮来执行功能和删除输入。
首先,我将解释如何在VanillaJS中实现这一目标。然后,为它创建一个Vue指令。
那么,让我们开始吧。
原理
为了实现长按,用户需要按住按钮几秒钟。
要在代码中复制它,我们需要在按下鼠标“单击”按钮时监听,启动计时器,不管我们希望用户在执行函数之前按住按钮,并在时间设置之后执行该功能。
非常简单!但是,我们需要知道用户何时按住该按钮。
怎么做
当用户单击按钮时,在单击事件之前会触发另外两个事件: mousedown 和 mouseup 。
当用户按下鼠标按钮时会调用 mousedown 事件,而当用户释放该按钮时会调用mouseup事件。
我们需要做的就是:
发生mousedown事件后启动计时器。
清除该计时器,并且在2secs标记之前触发mouseup事件后不执行该函数。即完整点击事件。
只要计时器在到达那个时间之前没有被清除,我们就会发现mouseup事件没有被触发 - 我们可以说用户没有释放按钮。因此,它被认为是长按,然后我们可以继续执行所述功能。
实际操作
让我们深入研究代码并完成这项工作。
首先,我们必须定义3件事,即:
variable 用于存储计时器。
start 函数启动计时器。
cancel 函数取消定时器
变量
这个变量基本上保存了setTimeout的值,所以我们可以在发生mouseup事件时取消它。
let pressTimer = null;
网页标题:详解如何在Vue里建立长按指令-创新互联
文章分享:http://scpingwu.com/article/dehoog.html