/**
* Transitionize 0.0.3
* https://github.com/abpetkov/transitionize
*
* Authored by Alexander Petkov
* https://github.com/abpetkov
*
* Copyright 2013, Alexander Petkov
* License: The MIT License (MIT)
* http://opensource.org/licenses/MIT
*
*/
/**
* Expose `Transitionize`.
*/
module.exports = Transitionize;
/**
* Initialize new Transitionize.
*
* @param {Object} element
* @param {Object} props
* @api public
*/
function Transitionize(element, props) {
if (!(this instanceof Transitionize)) return new Transitionize(element, props);
this.element = element;
this.props = props || {};
this.init();
}
/**
* Detect if Safari.
*
* @returns {Boolean}
* @api private
*/
Transitionize.prototype.isSafari = function() {
return (/Safari/).test(navigator.userAgent) && (/Apple Computer/).test(navigator.vendor);
};
/**
* Loop though the object and push the keys and values in an array.
* Apply the CSS3 transition to the element and prefix with -webkit- for Safari.
*
* @api private
*/
Transitionize.prototype.init = function() {
var transitions = [];
for (var key in this.props) {
transitions.push(key + ' ' + this.props[key]);
}
this.element.style.transition = transitions.join(', ');
if (this.isSafari()) this.element.style.webkitTransition = transitions.join(', ');
};
|