MediaWiki:Common.js: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Asphyx (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
Asphyx (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
||
Zeile 3: | Zeile 3: | ||
console.log("Common.js wird geladen!"); | console.log("Common.js wird geladen!"); | ||
// | // Liste der Standard-Menüs, die eingeklappt starten | ||
var | var defaultCollapsed = ['navigation', 'SEARCH', 'TOOLBOX', 'LANGUAGES']; | ||
// | // Alle Vector-Menü-Portale durchlaufen | ||
$('.vector-menu-portal').each(function() { | |||
var $portal = $(this); | |||
var $header = $portal.find('.vector-menu-heading'); | |||
var $content = $portal.find('.vector-menu-content-list'); | |||
var portalId = $portal.attr('id'); // z. B. "p-HOSTING" | |||
var portalName = portalId ? portalId.replace('p-', '') : ''; | |||
// Nur Portale mit Untermenüs bearbeiten | |||
if ($content.find('li').length > 0) { | |||
console.log("Portal:", portalName, "Untermenüs:", $content.find('li').length); | |||
// Indikator hinzufügen (▼ für ausgeklappt, ▶ für eingeklappt) | |||
$header.prepend('<span class="menu-indicator">▼</span> '); | |||
// Styling | |||
$header.css({ | |||
'cursor': 'pointer', | |||
'font-weight': 'bold', | |||
// | 'display': 'flex', | ||
$ | 'align-items': 'center' | ||
' | |||
}); | }); | ||
$header.find('.menu-indicator').css({ | |||
// | 'margin-right': '5px', | ||
$content. | 'transition': 'transform 0.3s ease' | ||
}); | |||
// Standardzustand festlegen | |||
var isOpen = !defaultCollapsed.includes(portalName); // Ausgeklappt, außer für defaultCollapsed | |||
if (isOpen) { | |||
$content.show(); | |||
$header.find('.menu-indicator').css('transform', 'rotate(0deg)'); | |||
} else { | |||
$content.hide(); | |||
$header.find('.menu-indicator').css('transform', 'rotate(-90deg)'); | |||
} | |||
// Klick-Event mit synchroner Animation | |||
$header.click(function(e) { | |||
e.preventDefault(); | |||
var $indicator = $header.find('.menu-indicator'); | |||
if (isOpen) { | |||
$content.slideUp(300); | |||
$indicator.css('transform', 'rotate(-90deg)'); | |||
} else { | |||
$content.slideDown(300); | |||
$indicator.css('transform', 'rotate(0deg)'); | |||
} | |||
isOpen = !isOpen; // Zustand umschalten | |||
}); | }); | ||
} | } | ||
}); | }); | ||
}); | }); |
Version vom 30. März 2025, 11:16 Uhr
/* Das folgende JavaScript wird für alle Benutzer geladen. */
$(document).ready(function() {
console.log("Common.js wird geladen!");
// Liste der Standard-Menüs, die eingeklappt starten
var defaultCollapsed = ['navigation', 'SEARCH', 'TOOLBOX', 'LANGUAGES'];
// Alle Vector-Menü-Portale durchlaufen
$('.vector-menu-portal').each(function() {
var $portal = $(this);
var $header = $portal.find('.vector-menu-heading');
var $content = $portal.find('.vector-menu-content-list');
var portalId = $portal.attr('id'); // z. B. "p-HOSTING"
var portalName = portalId ? portalId.replace('p-', '') : '';
// Nur Portale mit Untermenüs bearbeiten
if ($content.find('li').length > 0) {
console.log("Portal:", portalName, "Untermenüs:", $content.find('li').length);
// Indikator hinzufügen (▼ für ausgeklappt, ▶ für eingeklappt)
$header.prepend('<span class="menu-indicator">▼</span> ');
// Styling
$header.css({
'cursor': 'pointer',
'font-weight': 'bold',
'display': 'flex',
'align-items': 'center'
});
$header.find('.menu-indicator').css({
'margin-right': '5px',
'transition': 'transform 0.3s ease'
});
// Standardzustand festlegen
var isOpen = !defaultCollapsed.includes(portalName); // Ausgeklappt, außer für defaultCollapsed
if (isOpen) {
$content.show();
$header.find('.menu-indicator').css('transform', 'rotate(0deg)');
} else {
$content.hide();
$header.find('.menu-indicator').css('transform', 'rotate(-90deg)');
}
// Klick-Event mit synchroner Animation
$header.click(function(e) {
e.preventDefault();
var $indicator = $header.find('.menu-indicator');
if (isOpen) {
$content.slideUp(300);
$indicator.css('transform', 'rotate(-90deg)');
} else {
$content.slideDown(300);
$indicator.css('transform', 'rotate(0deg)');
}
isOpen = !isOpen; // Zustand umschalten
});
}
});
});