1
0
Fork 0
mirror of https://github.com/DanielnetoDotCom/YouPHPTube synced 2025-10-05 10:49:36 +02:00
Oinktube/view/js/videojs-rotatezoom/videojs.zoomrotate.js
2020-01-14 11:27:40 -03:00

62 lines
1.8 KiB
JavaScript

(function(){
var defaults, extend;
defaults = {
zoom: 1,
rotate: 0,
debug: true
};
extend = function() {
var args, target, i, object, property;
args = Array.prototype.slice.call(arguments);
target = args.shift() || {};
for (i in args) {
object = args[i];
for (property in object) {
if (object.hasOwnProperty(property)) {
if (typeof object[property] === 'object') {
target[property] = extend(target[property], object[property]);
} else {
target[property] = object[property];
}
}
}
}
return target;
};
/**
* register the zoomrotate plugin
*/
videojs.plugin('zoomrotate', function(settings){
var options, player, video, poster;
options = extend(defaults, settings);
/* Grab the necessary DOM elements */
player = this.el();
video = this.el().getElementsByTagName('video')[0];
poster = this.el().getElementsByTagName('div')[1]; // div vjs-poster
/* Array of possible browser specific settings for transformation */
var properties = ['transform', 'WebkitTransform', 'MozTransform',
'msTransform', 'OTransform'],
prop = properties[0];
/* Iterators */
var i,j;
/* Find out which CSS transform the browser supports */
for(i=0,j=properties.length;i<j;i++){
if(typeof player.style[properties[i]] !== 'undefined'){
prop = properties[i];
break;
}
}
/* Let's do it */
player.style.overflow = 'hidden';
video.style[prop]='scale('+options.zoom+') rotate('+options.rotate+'deg)';
poster.style[prop]='scale('+options.zoom+') rotate('+options.rotate+'deg)';
});
})();