Parallax Hover Tilt Effect With jQuery And CSS3 - universal-tilt.js

File Size: 156 KB
Views Total: 9924
Last Update:
Publish Date:
Official Website: Go to website
License: MIT
Parallax Hover Tilt Effect With jQuery And CSS3 - universal-tilt.js

universal-tilt.js is a JavaScript plugin to create performant, interactive parallax tilt effects that react to mouse movement and touch events. Supports both desktop and mobile devices.

Based on requestAnimationFrame API and CSS3 transform/perspective/transition properties. Also supports multi-layer elements.

Also can be used as a vanilla JavaScript plugin.

See also:


$ npm install universal-tilt.js --save

Basic usage:

1. Load the jQuery universal-tilt.js script after the latest jQuery library (slim build).

<script src="" 
<script src="dist/universal-tilt.js"></script>
// CDN
<script src=""></script>

2. Initialize the plugin and we're ready to go.

<!-- auto init -->
<div data-tilt></div>



3. Add the CSS class tilt to the target element and config the Parallax Hover Tilt Effect with the following data attributes:

  • data-shadow: add shadow to element
  • data-shine: add shine to element
  • data-shine-opacity: opacity level
  • data-scale: add scale to element
  • data-disabled: disable X- or Y-axis of your element
  • data-reverse: reverse all elements
  • data-position-base: set base position
  • data-reset: disable reset single element
<div class="tilt" 

4. Add the parallax effect to the inner element.

h1 {
  -webkit-transform: translateZ(80px);
  transform: translateZ(80px);

5. You can also config the Parallax Hover Tilt Effect in the JavaScript as these:


  settings: {

    // element or window
    base: 'element', 

    // allow/disable element position reset after mouseout
    reset: true, 

    // enable/disable tilt effect on mobile devices
    mobile: true, 

    // add/remove shine effect on mouseover
    shine: false, 

    // set shine opacity (0-1)
    shine-opacity: 0, 

    // save/reset shine effect on mouseout
    shine-save: false, 

    // max tilt value
    max: 35, 

    // tilt effect perspective
    perspective: 1000, 

    // element scale on mouseover
    scale: 1.0, 

    // disable axis (X or Y)
    disabled: null, 

    // reverse tilt effect directory
    reverse: false, 

    // transition speed
    speed: 300, 

    // transition easing
    easing: 'cubic-bezier(.03,.98,.52,.99)',

    // disable on selected user agents
    // /(iPod|iPhone|iPad|Android)/
    exclude: null

6. Callback functions available.

  callbacks: {

    // call function on mouse enter
    onMouseEnter: null, 

    // call function on mouse move
    onMouseMove: null, 

    // call function on mouse leave
    onMouseLeave: null, 

    // call function on device move
    onDeviceMove: null 




v2.0.6 (2019-06-18)

  • platform is now built-in

v2.0.4/5 (2019-06-05)

  • fixed exclude option incorrect behavior

v2.0.3 (2019-03-22)

  • fixed CDN undefined bug

v2.0.0 (2019-03-06)

  • splitted options prop into settings and methods
  • renamed option position-base to base
  • bugfix

v1.1.1 (2018-10-06)

  • Update dependency.

v1.1.0 (2018-07-16)

  • switched from Gulp to Webpack
  • updated Babel to v7
  • only 2 dist version
  • changed main file from universal-tilt.js to universal-tilt.min.js
  • moved demo to gh-pages branch

v1.0.6 (2018-07-08)

  • Internal updates & improvements

v1.0.6 (2018-05-01)

  • improved events performance

v1.0.4 (2018-04-14)

  • fixed bug with jQuery and Node.js compatibility

v1.0.1 (2018-04-09)

  • added mobile option (enable or disable tilt effect on mobile devices)

v1.0.0 beta 3 (2018-03-29)

  • removed shadow options
  • added callbacks on mouse enter, move, leave and device move

v1.0.0 beta 2 (2018-03-20)

  • code cleaned up
  • added autoinit
  • fixed performance of shine effect
  • fixed performance on mobile devices

v1.0.0 beta 1 (2018-03-04)

  • npm added
  • AMD & CommonJS support added
  • redesigned demo page (new header view, dark theme)
  • updated
  • added shadow-color option
  • renamed jQuery plugin from UniversalTilt() to universalTilt()


This awesome jQuery plugin is developed by JB1905. For more Advanced Usages, please check the demo page or visit the official website.