Quasar 提供全功能 Vue 指令,可以完全取代像 Hammerjs 這樣的函式庫:v-touch-pan
、v-touch-swipe
、v-touch-hold
甚至 v-touch-repeat
。
這些指令也適用於滑鼠事件,而不僅僅是觸控事件,因此您也可以在桌面上為您的應用程式建構酷炫的功能。
我們將在以下幾行描述 v-touch-hold
指令。
用法
預設等待時間為 600 毫秒,但您可以變更它
提示
TouchHold 也針對觸控事件預設靈敏度為 5 像素,滑鼠事件為 7 像素,這表示它允許手指或滑鼠稍微移動而不會中止,從而改善使用者體驗。
不過,您也可以變更此靈敏度(請注意以下指令參數 - 600:12:15
- 600 毫秒等待時間,觸控事件靈敏度 12 像素,滑鼠事件靈敏度 15 像素)
處理滑鼠事件
當您也想要處理滑鼠事件時,請使用 mouse
修飾符
<div v-touch-hold.mouse="userHasHold">...</div>
content_paste
抑制 TouchHold
當您想要抑制 TouchHold 時,可以透過停止從內部內容傳播 touchstart
/ mousedown
事件來達成。
<div v-touch-hold.mouse="userHasHold">
<!-- ...content -->
<div @touchstart.stop @mousedown.stop>
<!--
TouchHold will not apply here because
we are calling stopPropagation() on touchstart
and mousedown events
-->
</div>
<!-- ...content -->
</div>
content_paste
不過,如果您使用 capture
或 mouseCapture
修飾符,事件會先到達 TouchHold 指令,然後才到達內部內容,因此 TouchHold 仍會觸發。
關於 HMR 的注意事項
由於效能考量,並非所有修飾符都是響應式的。有些修飾符需要重新整理視窗/頁面/元件才能更新。請查看 API 卡片以了解未標記為響應式的修飾符。