npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

vue-use-hover-intent

v0.0.5

Published

Vue 3 composable hover detection that waits until the user's mouse slows down enough.

Downloads

12

Readme

vue-use-hover-intent

npm version npm downloads

Vue 3 composable hover detection that waits until the user's mouse slows down enough.

This is a Vue 3 port of react-use-hoverintent

Demo

plnt.cz/hoverintent

Install

# npm
npm install vue-use-hover-intent

# yarn
yarn add vue-use-hover-intent

# pnpm
pnpm install vue-use-hover-intent

Use

Import the composable and pass in a ref of the element you want to detect hover on. It returns a boolean ref that is true when the user is hovering over the element.

<script setup lang="ts">
  import { useHoverIntent } from 'vue-use-hover-intent'

  const elementRef = ref<HTMLElement>()

  // with default options
  const isHovering = useHoverIntent(elementRef)

  // with custom options
  const isHoveringWithOptions = useHoverIntent(elementRef, {
    sensitivity: 4,
    interval: 50,
    timeout: 0,
  })
</script>

<template>
  <div>
    <div ref="elementRef">
      <p v-if="isHovering">Hovering</p>
      <p v-else>Not hovering</p>
    </div>
  </div>
</template>

Options

You can pass following options to the composable as a second parameter:

timeout: Delay in milliseconds before the onMouseOut callback is fired. If the user mouses back over the element before the timeout has expired the onMouseOut callback will not be called (nor will the onMouseOver callback be called). This is primarily to protect against sloppy/human mousing trajectories that temporarily (and unintentionally) take the user off of the target element... giving them time to return (defaults to 100).

sensitivity: If the mouse travels fewer than this number of pixels between polling intervals, then the onMouseOver callback will be called. With the minimum sensitivity threshold of 1, the mouse must not move between polling intervals. With higher sensitivity thresholds you are more likely to receive a false positive (defaults to 6).

interval : The number of milliseconds hoverIntent waits between reading/comparing mouse coordinates. When the user's mouse first enters the element its coordinates are recorded. The soonest the onMouseOut callback can be called is after a single polling interval. Setting the polling interval higher will increase the delay before the first possible onMouseOver call, but also increases the time to the next point of comparison (defaults to 100).

💻 Development

  • Clone this repository
  • Enable Corepack using corepack enable (use npm i -g corepack for Node.js < 16.10)
  • Install dependencies using pnpm install
  • Run interactive tests using pnpm dev

License

Made with 💛

Published under MIT License.