# hold-event

> Provides key hold-start, holding, hold-end and other events.

Latest version **1.1.2** (published 2025-06-10) · MIT license · 0 weekly downloads

## Install

```sh
npm install hold-event
pnpm add hold-event
yarn add hold-event
bun add hold-event
```

## Health

**Score 45/100 (D)** — status: stable.

Positive: has types; esm support; no vulnerabilities.

Warnings: low downloads.

Negative: stale.

## Facts

| | |
|---|---|
| Version | 1.1.2 |
| Published | 2025-06-10 |
| First published | 2020-02-19 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 0 |
| Unpacked size | 33.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 18 |
| Author | Yomotsu |
| Maintainers | yomotsu |
| Keywords | keyboard, event |

## Links

- npm: https://www.npmjs.com/package/hold-event
- Repository: https://github.com/yomotsu/hold-event
- Homepage: https://github.com/yomotsu/hold-event#readme
- Issues: https://github.com/yomotsu/hold-event/issues
- npm.io page: https://npm.io/package/hold-event

## Alternatives

- [async-exit-hook](https://npm.io/package/async-exit-hook.md) — 3.7M weekly downloads
- [evnty](https://npm.io/package/evnty.md) — 7.2K weekly downloads
- [eleventy-plugin-asciidoc](https://npm.io/package/eleventy-plugin-asciidoc.md) — 3.5K weekly downloads
- [@jswork/next-get2get](https://npm.io/package/@jswork/next-get2get.md) — 945 weekly downloads
- [@dashersw/axon](https://npm.io/package/@dashersw/axon.md) — 934 weekly downloads

## Recent versions

- 1.1.2 (latest) — 2025-06-10
- 1.1.1 — 2025-06-10
- 1.1.0 — 2023-10-02
- 1.0.1 — 2023-10-02
- 0.2.0 — 2022-04-24
- 0.1.0 — 2021-05-21
- 0.0.1 — 2020-03-06
- 0.0.0 — 2020-02-19

## README

# hold-event

Provides key hold-start, holding, hold-end and other events.

- [keyboard](https://yomotsu.github.io/hold-event/examples/keyboard.html)
- [multiple keys](https://yomotsu.github.io/hold-event/examples/keyboard-multiple.html)
- [element](https://yomotsu.github.io/hold-event/examples/element.html)

## Key press and hold

The 1st argument is a [`KeyboardEvent.code`](https://www.w3.org/TR/uievents-code/#keyboard-key-codes).

```js
const keyLeft = new holdEvent.KeyboardKeyHold( 'ArrowLeft' );

keyLeft.addEventListener( holdEvent.HOLD_EVENT_TYPE.HOLD_START, ( event ) => console.log( event ) );
keyLeft.addEventListener( holdEvent.HOLD_EVENT_TYPE.HOLDING, ( event ) => console.log( event ) );
keyLeft.addEventListener( holdEvent.HOLD_EVENT_TYPE.HOLD_END, ( event ) => console.log( event ) );
```

## Element press and hold

```js
const $button = document.getElementById( 'button' )
const buttonHold = new holdEvent.ElementHold( $button );

buttonHold.addEventListener( holdEvent.HOLD_EVENT_TYPE.HOLD_START, ( event ) => console.log( event ) );
buttonHold.addEventListener( holdEvent.HOLD_EVENT_TYPE.HOLDING, ( event ) => console.log( event ) );
buttonHold.addEventListener( holdEvent.HOLD_EVENT_TYPE.HOLD_END, ( event ) => console.log( event ) );
```

---
_Source: https://npm.io/package/hold-event · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
