--- 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; ```