/* * JQuery CSS Rotate property using CSS3 Transformations * Copyright (c) 2011 Jakub Jankiewicz * licensed under the LGPL Version 3 license. * http://www.gnu.org/licenses/lgpl.html */ (function($) { function getTransformProperty(element) { var properties = ['transform', 'WebkitTransform', 'MozTransform', 'msTransform', 'OTransform']; var p; while (p = properties.shift()) { if (element.style[p] !== undefined) { return p; } } return false; } $.cssHooks['rotate'] = { get: function(elem, computed, extra){ var property = getTransformProperty(elem); if (property) { return elem.style[property].replace(/.*rotate\((.*)deg\).*/, '$1'); } else { return ''; } }, set: function(elem, value){ var property = getTransformProperty(elem); if (property) { value = parseInt(value); $(elem).data('rotatation', value); if (value == 0) { elem.style[property] = ''; } else { elem.style[property] = 'rotate(' + value%360 + 'deg)'; } } else { return ''; } } }; $.fx.step['rotate'] = function(fx){ $.cssHooks['rotate'].set(fx.elem, fx.now); }; })(jQuery);