🔔 Alert..!! Get 2 Month Free Cloud Hosting With $200 Bonus From Digital Ocean ACTIVATE DEAL

Attract Hover is a jQuery plugin that applies an interactive hover effect to any element using CSS3 transitions and transforms. This element will move smoothly with your mouse within a boundary.

Hover-Effect

Documentation

Attract Hover

Creates an 'attract' effect, when the mouse is near an element and within bounds. 🖱⚪️

Example

You can see an example of this working over on Codepen

Requirements

This plugin currently requires jQuery 2.x+, but we'd recommend using jQuery 3.x+.

Install

You can install via npm:

npm install attract-hover

Or, manually by copying the attractHover.js from /dist/ and placing it inside your project folders.

Initialise

To initialise the plugin, use the code below in your JS file.

   $.attractHover(    	'.js-attract-hover',    	{    		proximity: 20,    		magnetism: 4    	}    );

Then add the selector to the element you want to have the attract effect to.

<a href="/" class="js-attract-hover">    Button </a>

Options

You can overwrite the plugin options e.g. $.attractHover('.js-attract', { proximity: 10 });. The options for the plugin can be found below:

Name Type Default Value Description
proximity integer 30 Defines the area around the element that starts the interaction.
magnetism integer 3 Defines how far the element can move based on the mouse position and element size.
attractClass string attract-hover Class wrapped around your attracted element that gets added dynamically.
attractEasingClass string attract-hover-easing Class that moves your attracted element that gets added dynamically.
attractAttractedClass string attract-hover-attracted Class that is added when the element is attracted.

CSS / Easing

Although theres no need to add any CSS / easing to your elements as the attract hover adds CSS itself dynamically. We recommend adding some form of transition and easing to make the attract effect seem more elastic.

This is best added to the .attract-hover-easing in your own CSS (Unless you've changed the attractEasingClass option on the plugin.)

.attract-hover-easing {    transition: all 0.3s cubic-bezier(0.250, 0.460, 0.450, 0.940); } 

Roadmap

  • Vanilla version
  • More debugging in browsers and devices

You May Also Like