触摸保持指令

Quasar提供全功能的可以完全替代Hammerjs这样的库的Vue指令:v-touch-panv-touch-swipev-touch-hold甚至v-touch-repeat

这些指令也适用于鼠标事件,不仅是触摸事件,所以您也可以在桌面上为您的应用程序构建酷炫的功能。

我们将在下面的行中描述v-touch-hold指令。

TouchHold API

用法




默认等待时间是600毫秒,但是您可以更改它:




TIP

TouchHold对触摸事件的默认灵敏度为5px,对鼠标事件的默认灵敏度为7px,这意味着它允许手指或鼠标轻微移动而不会中止,从而改善了用户体验。

但是,您也可以更改此敏感度(请注意下面的指令参数 - 600:12:15 - 600毫秒的等待时间、触摸事件的敏感度为12px、鼠标事件的敏感度为15px):




处理鼠标事件

如果您还想处理鼠标事件,请使用mouse修饰符:

<div v-touch-hold.mouse="userHasHold">...</div>

禁止TouchHold

当您想禁止TouchHold时,可以通过停止内部内容中的touchstart/mousedown事件的传播来实现:

<div v-touch-hold.mouse="userHasHold">
  <!-- ...内容 -->
  <div @touchstart.stop @mousedown.stop>
    <!--
       TouchHold不适用于此处,因为
       我们在touchstart和mousedown事件上
       调用stopPropagation() 
    -->
  </div>
  <!-- ...内容 -->
</div>

但是,如果使用capturemouseCapture修饰符,则事件将首先到达TouchHold指令,然后到达内部内容,因此TouchHold仍将触发。

关于HMR的注意事项

由于性能原因,并不是所有的修饰符都是响应式的。有些需要刷新窗口/页面/组件才能更新。请检查API卡中未标记为响应式的修饰符。