Skip to content

urbn/hoverintent

Repository files navigation

hoverintent

hoverintent is a reworking of Brian Cherne's jQuery plugin in plain javascript. It has no dependencies.

It's goal is to determine a user's intention when hovering over an element by triggering a mouseover event when the cursor position has slowed down enough.

Check out the demo to see how it works in action.

Browser Support

Chrome logoFirefox logoInternet Explorer logoOpera logoSafari logo
All ✔All ✔9+ ✔7+ ✔All ✔

Basic usage

Adding hoverintent to an element

<scriptsrc='hoverintent.min.js'></script><script>varel=document.getElementById('element-id');hoverintent(el,function(){// Handler in},function(){// Handler out});</script>

Removing hoverintent from an element

<scriptsrc='hoverintent.min.js'></script><script>varel=document.getElementById('element-id');// Save a reference to the methodvarhoverListener=hoverintent(el,function(){// Handler in},function(){// Handler out});// Remove hoverintent listenershoverListener.remove();// Remove hoverintent and fire the out handlerhoverListener.remove(true);</script>

Custom options

You can adjust mouse sensitivity or the length of time a mouse over/out event is fired:

<scriptsrc='hoverintent.min.js'></script><script>varopts={timeout: 500,interval: 50};varel=document.getElementById('element-id');hoverintent(el,function(){// Handler in},function(){// Handler out}).options(opts);</script>
SettingDefault ValueDescription
sensitivity
sensitivity: 7
The value (in pixels) the mouse cursor should not travel beyond while hoverintent waits to trigger the mouseover event.
interval
interval: 100
The length of time (in milliseconds) hoverintent waits to re-read mouse coordinates.
timeout
timeout: 0
The length of time (in milliseconds) before the mouseout event is fired.
handleFocus
timeout: false
Adds onOver/onOut callbacks to keyboard navigation during blur and focus events

Ender support

Add hoverintent as an internal chain method to your Ender compilation.

// ender add hoverintent$('.element').hoverintent(function(){// Handler in},function(){// Handler out});

Building

to manage dependencies and build. Development requires you have node.js installed.

  1. Install node.js. 'Install' will download a package for your OS.
  2. Run npm install
  3. Run npm run build

Licence

 _____ < MIT > ----- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || || 

Bugs?

Create an issue

About

🐭 Fire mouse events when a user intends it

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • HTML37.8%
  • JavaScript37.6%
  • CSS24.6%