MediaWiki:Common.js: различия между версиями
Материал из Музыкально-фольклорный депозитарий
Krdk (обсуждение | вклад) Нет описания правки |
Krdk (обсуждение | вклад) Нет описания правки |
||
| Строка 1: | Строка 1: | ||
/* Бронебойный скрипт для SVG-баннеров | /* Бронебойный скрипт для SVG-баннеров с ИНДИВИДУАЛЬНЫМИ размерами (Timeless) */ | ||
mw.loader.using('mediawiki.util').then(function () { | mw.loader.using('mediawiki.util').then(function () { | ||
mw.hook('wikipage.content').add(function () { | mw.hook('wikipage.content').add(function () { | ||
$('#mw-site-navigation a, #mw-related-navigation a, .sidebar-chunk a, .mw-portlet a').each(function () { | $('#mw-site-navigation a, #mw-related-navigation a, .sidebar-chunk a, .mw-portlet a').each(function () { | ||
var $link = $(this); | var $link = $(this); | ||
var | var rawText = $link.text().trim(); | ||
// Если | // Разделяем текст по символу "|", чтобы отделить имя файла от размера | ||
if ( | var parts = rawText.split('|'); | ||
var fileName = parts[0].trim(); | |||
var imgSrc = mw.util.getUrl('Special:FilePath/' + | // Если размер указан — берем его, если нет — ставим 100% | ||
var customWidth = parts[1] ? parts[1].trim() : '100%'; | |||
if (fileName.match(/\.svg$/i)) { | |||
var imgSrc = mw.util.getUrl('Special:FilePath/' + fileName); | |||
var $img = $('<img>', { | var $img = $('<img>', { | ||
src: imgSrc, | src: imgSrc, | ||
alt: 'Баннер', | alt: 'Баннер', | ||
css: { | css: { | ||
'max-width': '100%', | 'width': customWidth, // Применяем индивидуальный размер! | ||
'max-width': '100%', // Защита от вылезания за пределы сайдбара | |||
'height': 'auto', | 'height': 'auto', | ||
'display': 'block', | 'display': 'block', | ||
| Строка 26: | Строка 29: | ||
}); | }); | ||
$img.hover( | $img.hover( | ||
function() { $(this).css('transform', 'scale(1.03)'); }, | function() { $(this).css('transform', 'scale(1.03)'); }, | ||
| Строка 32: | Строка 34: | ||
); | ); | ||
$link.closest('li').css({'list-style': 'none', 'margin-bottom': '10px'}); | $link.closest('li').css({'list-style': 'none', 'margin-bottom': '10px'}); | ||
$link.closest('ul').css({'padding-left': '0', 'list-style': 'none'}); | $link.closest('ul').css({'padding-left': '0', 'list-style': 'none'}); | ||
$link.empty().append($img); | $link.empty().append($img); | ||
} | } | ||
Текущая версия от 12:54, 8 апреля 2026
/* Бронебойный скрипт для SVG-баннеров с ИНДИВИДУАЛЬНЫМИ размерами (Timeless) */
mw.loader.using('mediawiki.util').then(function () {
mw.hook('wikipage.content').add(function () {
$('#mw-site-navigation a, #mw-related-navigation a, .sidebar-chunk a, .mw-portlet a').each(function () {
var $link = $(this);
var rawText = $link.text().trim();
// Разделяем текст по символу "|", чтобы отделить имя файла от размера
var parts = rawText.split('|');
var fileName = parts[0].trim();
// Если размер указан — берем его, если нет — ставим 100%
var customWidth = parts[1] ? parts[1].trim() : '100%';
if (fileName.match(/\.svg$/i)) {
var imgSrc = mw.util.getUrl('Special:FilePath/' + fileName);
var $img = $('<img>', {
src: imgSrc,
alt: 'Баннер',
css: {
'width': customWidth, // Применяем индивидуальный размер!
'max-width': '100%', // Защита от вылезания за пределы сайдбара
'height': 'auto',
'display': 'block',
'margin': '5px auto',
'border-radius': '4px',
'transition': 'transform 0.2s'
}
});
$img.hover(
function() { $(this).css('transform', 'scale(1.03)'); },
function() { $(this).css('transform', 'scale(1)'); }
);
$link.closest('li').css({'list-style': 'none', 'margin-bottom': '10px'});
$link.closest('ul').css({'padding-left': '0', 'list-style': 'none'});
$link.empty().append($img);
}
});
});
});