Giter Site home page Giter Site logo

undeadinu / displaceable Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dinohamzic/displaceable

0.0 0.0 0.0 9.93 MB

A tiny, performant and configurable JavaScript library that smoothly displaces elements on mouse move.

License: MIT License

JavaScript 100.00%

displaceable's Introduction

displaceable

A tiny JavaScript library that handles super smooth element displacement on mouse move. Inspired by this shot.

Displaceable screen capture


Demo and code examples

Live demo and React implementation example.

Setup

Install:

npm install displaceable

Basic usage

Import:

import Displaceable from 'displaceable';

Initialize:

// single Node
const displaceable = new Displaceable(document.getElementById('id'));

or

// NodeList
const displaceable = new Displaceable(document.querySelectorAll('img'));

or

// array of Nodes
const displaceable = new Displaceable([
  document.getElementById('id-1'),
  document.getElementById('id-2'),
  document.getElementById('id-3')
]);

Configuration

settings object

You can pass an object as the second parameter of Displaceable() to modify the instance settings.

const displaceable = new Displaceable(document.getElementById('node-id'), {
  displaceFactor: 5,
  lockY: true,
  resetTime: 500,
  skewFactor: 10,
  trigger: document.getElementById('trigger-id')
});
Property Type Default Description
displaceFactor number 3 Multiplier for the translate transformation. The bigger the number, the more the Nodes will move. You can use a negative value to invert the direction of the movement.
lockX boolean false If set to true, Nodes will only move on the Y axis.
lockY boolean false If set to true, Nodes will only move on the X axis.
resetTime number 1000 How fast the Nodes will return to their original position (in milliseconds).
skewFactor number 5 Multiplier for the skew transformation. The bigger the number, the more Nodes will skew. You can use a negative value to invert the skewing direction.
trigger window|Node window The Node that triggers the displacement. It can be any Node with height and width greater than zero.

Data attributes:

  • data-displace-factor
  • data-lock-x
  • data-lock-y
  • data-skew-factor

To control each Node independently, use the following data attributes. The value set in the data attribute will override the one in the settings object only for that particular element.

<img
  data-displace-factor="10"
  data-skew-factor="10"
  id="img-id"
/>

<div
  data-lock-y="true"
  id="div-id"
>
  I'm displaceable and I can only move horizontally!
</div>

displaceable's People

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.