by heygrady

heygrady /transform

jQuery 2d transformation plugin

445 Stars 91 Forks Last release: Not found 63 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:


As a note, I'm no longer maintaining this library. There was a much simpler library by Louis Remi. I forked it a while back and ported over the portions of my library that were missing from his. Louis' approach is much simpler and more performant.

My fork is here

Louis Remi's is here

2D Transformations

This library uses native CSS3 transformations in supported browsers and relies on the matrix filter in Internet Explorer 8 and below.

NOTE: In Internet Explorer 8 and below, the transform-origin and the translate functions are simulated using relative positioning. Because of this, in Internet Explorer 8 and below, the top and left position of an element will be incorrect after it has been transformed. The solution is to wrap the element that is to be transformed and position that wrapper instead.

  • Since 0.9.0, proper units are required
  • Since 0.9.0, jQuery 1.4.3 or above is required

Supported Browsers

  • Native CSS3 Support
    • FireFox 3.5+
    • Safari 3.1+
    • Chrome
    • Opera 10.5+
    • Internet Explorer 9+
  • Matrix Filter Support
    • Internet Explorer 5.5 - 8


// Rotate 30 Degrees
$('#example').transform({rotate: '30deg'});

// Use CSS Hooks to Rotate $('#example').css({rotate: '30deg'});

// Animate the rotation $('#example').animate({rotate: '30deg'});

// Go Crazy $('#example').transform({ matrix: [1, 0, 0, 1, 0, 0], //applies a matrix reflect: true, //same as rotate(180deg) reflectX: true, //mirrored upside down reflectXY: true, //same as reflectX + rotate(-90deg) reflectY: true, //mirrored rotate: '45deg', //rotates 45 degrees skew: ['10deg', '10deg'], //skews 10 degrees on the x and y axis skewX: '10deg', //skews 10 degrees on the x axis skewY: '10deg', //skews 10 degrees on the y axis scale: [1.5, 1.5], //scales by 1.5 on the x and y axis scaleX: 1.5, //scales by 1.5 on the x axis scaleY: 1.5, //scales by 1.5 on the y axis translate: ['20px', '20px'], //moves the transformation 20px on the x and y axis translateX: 20px', //moves the transformation 20px on the x axis translateY: '20px', //moves the transformation 20px on the y axis origin: ['20%', '20%'] //changes the transformation origin });

// Properties can be strings or arrays $('#example').css({skew: ['10deg', '10deg']}); $('#example').css({skew: '10deg, 10deg'});

// For animation, arrays should be nested because of jQuery's per-property easing support $('#example').animate({skew: ['10deg', '10deg']}); // technically this defines nonsense easing of 10deg $('#example').animate({skew: [['10deg', '10deg']]}); // this is a friendlier way of supporting this

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.