MediaWiki:Common.js: различия между версиями
Материал из Музыкально-фольклорный депозитарий
Krdk (обсуждение | вклад) (Новая страница: «→Размещённый здесь код JavaScript будет загружаться пользователям при обращении к каждой странице: →Превращаем текстовые ссылки на SVG в сайдбаре в кликабельные картинки: mw.hook('wikipage.content').add(function() { // Ищем блок БАННЕРЫ (Timeless генерирует ID 'p-БАННЕРЫ' или 'p-BAN...») |
Krdk (обсуждение | вклад) Нет описания правки |
||
| (не показаны 2 промежуточные версии этого же участника) | |||
| Строка 1: | Строка 1: | ||
/* | /* Бронебойный скрипт для SVG-баннеров с ИНДИВИДУАЛЬНЫМИ размерами (Timeless) */ | ||
mw.loader.using('mediawiki.util').then(function () { | |||
mw. | 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 | var fileName = parts[0].trim(); | ||
var | // Если размер указан — берем его, если нет — ставим 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', | ||
'margin': '5px auto' | '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); | $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);
}
});
});
});