MediaWiki:Gadget-VideoResizer.js: Difference between revisions
From the Super Mario Wiki, the Mario encyclopedia
Jump to navigationJump to search
No edit summary |
No edit summary |
||
Line 2: | Line 2: | ||
function videoResizer() { | function videoResizer() { | ||
$(' | $('#mw-content-text video').each(function() { | ||
var body = $('#mw-content-text .mw-parser-output'); | var body = $('#mw-content-text .mw-parser-output'); | ||
var self = $(this); | var self = $(this); | ||
Line 19: | Line 19: | ||
} | } | ||
function videoJsResizer() { | function videoJsResizer() { | ||
$(' | $('#mw-content-text .video-js').each(function() { | ||
var body = $('#mw-content-text .mw-parser-output'); | var body = $('#mw-content-text .mw-parser-output'); | ||
var self = $(this); | var self = $(this); | ||
Line 37: | Line 37: | ||
} | } | ||
function youtubeResizer() { | function youtubeResizer() { | ||
$(' | $('#mw-content-text .autoResize').each(function(){ | ||
var body = $('#mw-content-text .mw-parser-output'); | var body = $('#mw-content-text .mw-parser-output'); | ||
var self = $(this); | var self = $(this); | ||
Line 72: | Line 72: | ||
/* Loop uploaded videos under 15 seconds long */ | /* Loop uploaded videos under 15 seconds long */ | ||
$(function() { | $(function() { | ||
$(' | $('#mw-content-text video').each(function() { | ||
if ($(this).attr('data-durationhint') < 15) | if ($(this).attr('data-durationhint') < 15) | ||
$(this).attr('loop', ''); | $(this).attr('loop', ''); | ||
}); | }); | ||
}); | }); |
Revision as of 01:48, January 25, 2023
/* Automatically resize videos to fit the page width */
function videoResizer() {
$('#mw-content-text video').each(function() {
var body = $('#mw-content-text .mw-parser-output');
var self = $(this);
if (typeof self.attr('data-orig-width') == 'undefined') {
self.attr('data-orig-width', self.width());
self.attr('data-orig-height', self.height());
}
if (body.width() < self.attr('data-orig-width')) {
var aspect = self.attr('data-orig-width') / self.attr('data-orig-height');
var newWidth = Math.ceil(body.width());
var newHeight = Math.floor(body.width() / aspect);
self.css('width', newWidth);
self.css('height', newHeight);
}
});
}
function videoJsResizer() {
$('#mw-content-text .video-js').each(function() {
var body = $('#mw-content-text .mw-parser-output');
var self = $(this);
var video = self.find('video');
video.removeAttr('style');
if (body.width() < video.attr('data-orig-width')) {
var aspect = video.attr('data-orig-width') / video.attr('data-orig-height');
var newWidth = Math.ceil(body.width());
var newHeight = Math.floor(body.width() / aspect);
self.css('width', newWidth);
self.css('height', newHeight);
} else if (self.width() != video.attr('data-orig-width')) {
self.css('width', video.attr('data-orig-width'));
self.css('height', video.attr('data-orig-height'));
}
});
}
function youtubeResizer() {
$('#mw-content-text .autoResize').each(function(){
var body = $('#mw-content-text .mw-parser-output');
var self = $(this);
var iframe = self.find('iframe');
if (typeof iframe.attr('data-orig-width') == 'undefined') {
iframe.attr('data-orig-width', iframe.width());
iframe.attr('data-orig-height', iframe.height());
}
var newWidth = $(this).parent().parent().is('section') ? body.width() : body.width() - 10;
if (newWidth < iframe.attr('data-orig-width')) {
var aspect = iframe.attr('data-orig-width') / iframe.attr('data-orig-height');
var newWidth = Math.ceil(newWidth);
var newHeight = Math.floor(newWidth / aspect);
self.css('width', newWidth);
iframe.attr('width', newWidth);
iframe.attr('height', newHeight);
} else if (iframe.width() != iframe.attr('data-orig-width')) {
self.css('width', iframe.attr('data-orig-width'));
iframe.attr('width', iframe.attr('data-orig-width'));
iframe.attr('height', iframe.attr('data-orig-height'));
}
});
}
$(videoResizer);
$(youtubeResizer);
$(window).resize(function() {
clearTimeout(window.resizeFinished);
window.resizeFinished = setTimeout(function() {
$(videoJsResizer);
$(youtubeResizer);
}, 100);
});
/* Loop uploaded videos under 15 seconds long */
$(function() {
$('#mw-content-text video').each(function() {
if ($(this).attr('data-durationhint') < 15)
$(this).attr('loop', '');
});
});