--- category: Sensors --- # useMousePressed Reactive mouse pressing state. Triggered by `mousedown` `touchstart` on target element and released by `mouseup` `mouseleave` `touchend` `touchcancel` on window. ## Basic Usage ```ts import { useMousePressed } from '@vueuse/core' const { pressed } = useMousePressed() ``` Touching is enabled by default. To make it only detects mouse changes, set `touch` to `false` ```ts import { useMousePressed } from '@vueuse/core' // ---cut--- const { pressed } = useMousePressed({ touch: false }) ``` To only capture `mousedown` and `touchstart` on specific element, you can specify `target` by passing a ref of the element. ```vue ``` ## Component Usage ```vue ``` ## Type Declarations ```ts export interface MousePressedOptions extends ConfigurableWindow { /** * Listen to `touchstart` `touchend` events * * @default true */ touch?: boolean /** * Listen to `dragstart` `drop` and `dragend` events * * @default true */ drag?: boolean /** * Add event listeners with the `capture` option set to `true` * (see [MDN](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#capture)) * * @default false */ capture?: boolean /** * Initial values * * @default false */ initialValue?: boolean /** * Element target to be capture the click */ target?: MaybeComputedElementRef /** * Callback to be called when the mouse is pressed * * @param event */ onPressed?: (event: MouseEvent | TouchEvent | DragEvent) => void /** * Callback to be called when the mouse is released * * @param event */ onReleased?: (event: MouseEvent | TouchEvent | DragEvent) => void } /** * Reactive mouse pressing state. * * @see https://vueuse.org/useMousePressed * @param options */ export declare function useMousePressed(options?: MousePressedOptions): { pressed: ShallowRef sourceType: ShallowRef } export type UseMousePressedReturn = ReturnType ```