Skip to content

Instantly share code, notes, and snippets.

@jtaby
Created August 4, 2011 20:11
Show Gist options
  • Save jtaby/1126115 to your computer and use it in GitHub Desktop.
Save jtaby/1126115 to your computer and use it in GitHub Desktop.
var transformer = (function() {
var m00 = 1, m10 = 0, m20 = 0, m30 = 0,
m01 = 0, m11 = 1, m21 = 0, m31 = 0,
m02 = 0, m12 = 0, m22 = 1, m32 = 0,
m03 = 0, m13 = 0, m23 = 0, m33 = 1;
return {
scale: function(scale) {
m00 *= scale;
m11 *= scale;
m22 *= scale;
},
translate: function(x, y) {
m03 += x;
m13 += y;
},
translateZ: function(z) {
m23 += z;
},
applyMatrix: function($) {
$.css('-webkit-transform','matrix3d('+m00+','+m10+','+m20+','+m30+',\
'+m01+','+m11+','+m21+','+m31+',\
'+m02+','+m12+','+m22+','+m32+',\
'+m03+','+m13+','+m23+','+m33+')');
},
getTransformedDimensions: function(element) {
var top = element.offsetTop;
var left = element.offsetLeft;
var width = window.parseInt(window.getComputedStyle(element).width, 10);
var height = window.parseInt(window.getComputedStyle(element).height, 10);
return {
top: (top + m03) * m00,
left: (left + m13) * m00,
width: width * m00,
height: height * m00
}
}
}
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment