mirror of
https://github.com/DanielnetoDotCom/YouPHPTube
synced 2025-10-05 02:39:46 +02:00
62 lines
1.9 KiB
JavaScript
62 lines
1.9 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)';
|
|
});
|
|
})();
|
|
|