Created
October 19, 2015 20:59
-
-
Save brydar/592b8e7f2a58c19596e1 to your computer and use it in GitHub Desktop.
jquery.transform.js from https://github.com/kontur/jquery.transform.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* transform: A jQuery cssHooks adding 2D/3D transform capabilities to $.fn.css() and $.fn.animate() | |
* | |
* Requirements: | |
* - jQuery 1.5.1+ | |
* - jquery.transition.js for animations | |
* - browser implementing W3C's CSS 2DTransforms for 2D tranform | |
* - browser implementing W3C's CSS 3DTransforms for 3D tranform | |
* | |
* latest version and complete README available on Github: | |
* https://github.com/louisremi/jquery.transform.js | |
* | |
* Copyright 2011 @louis_remi | |
* Licensed under the MIT license. | |
* | |
* This saved you an hour of work? | |
* Send me music http://www.amazon.co.uk/wishlist/HNTU0468LQON | |
* | |
*/ | |
(function( $, window, document ) { | |
"use strict"; | |
var div = document.createElement("div"), | |
divStyle = div.style, | |
prefixes = [ | |
"O", | |
"ms", | |
"Webkit", | |
"Moz" | |
], | |
prefix, | |
i = prefixes.length, | |
properties = [ | |
"transform", | |
"transformOrigin", | |
"transformStyle", | |
"perspective", | |
"perspectiveOrigin", | |
"backfaceVisibility" | |
], | |
property, | |
j = prefixes.length; | |
// Find the right prefix | |
while ( i-- ) { | |
if ( prefixes[i] + leadingUppercase( properties[0] ) in divStyle ) { | |
prefix = prefixes[i]; | |
continue; | |
} | |
} | |
// This browser is not compatible with transforms | |
if ( !prefix ) { return; } | |
// Build cssHooks for each property | |
while ( j-- ) { | |
property = prefix + leadingUppercase( properties[j] ); | |
if ( property in divStyle ) { | |
// px isn't the default unit of this property | |
$.cssNumber[ properties[j] ] = true; | |
// populate cssProps | |
$.cssProps[ properties[j] ] = property; | |
// MozTranform requires a complete hook because "px" is required in translate | |
property === "MozTransform" && ($.cssHooks[ properties[j] ] = { | |
get: function( elem, computed ) { | |
return (computed ? | |
// remove "px" from the computed matrix | |
$.css( elem, property ).split("px").join(""): | |
elem.style[property] | |
); | |
}, | |
set: function( elem, value ) { | |
// add "px" to matrices | |
/matrix\([^)p]*\)/.test(value) && ( | |
value = value.replace(/matrix((?:[^,]*,){4})([^,]*),([^)]*)/, "matrix$1$2px,$3px") | |
); | |
elem.style[property] = value; | |
} | |
}); | |
} | |
} | |
function leadingUppercase( word ) { | |
return word.slice(0,1).toUpperCase() + word.slice(1); | |
} | |
})( jQuery, window, document ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment