Benutzer:McNamara/TestDiv

Aus Gruselroman-Wiki
Zur Navigation springen Zur Suche springen

Anleitung:

div.NavHead { background: #eaecf0; font-weight: bold; }

  • In die Seite

// Beginn der zusammenklappbaren Liste mw.loader.using( [ 'jquery.makeCollapsible', 'user', 'mediawiki.user', 'user.options' ], function() { mw.hook( 'wikipage.content' ).add( function( $content ) {

   // Erlaubt das Setzen von NavigationBarShowDefault
   var showDefaultCount = mw.user.options.get( 'NavigationBarShowDefault',
       typeof NavigationBarShowDefault !== 'undefined' ? NavigationBarShowDefault : 1 );
   // Erlaubt Benutzerüberschreibungen für Abwärtskompatibilität
   var textHide = typeof NavigationBarHide === 'string' ? NavigationBarHide : mw.msg( 'collapsible-collapse' );
   var textShow = typeof NavigationBarShow === 'string' ? NavigationBarShow : mw.msg( 'collapsible-expand' );
   // Zeigt und verbirgt den Inhalt und das Bild (falls vorhanden) von Navigationsleisten
   // Parameter:
   //     indexNavigationBar: der Index der umzuschaltenden Navigationsleiste
   function toggleNavigationBar(NavToggle, NavFrame)
   {
       if (!NavFrame || !NavToggle) {
           return false;
       }
       // Wenn der Inhalt derzeit angezeigt wird
       if (NavToggle.firstChild.data === textHide) {
           for (
                   var NavChild = NavFrame.firstChild;
                   NavChild !== null;
                   NavChild = NavChild.nextSibling
               ) {
               if (NavChild.className === 'NavPic' || NavChild.className === 'NavContent') {
                   NavChild.style.display = 'none';
               }
           }
           NavToggle.firstChild.data = textShow;
       // Wenn der Inhalt derzeit verborgen ist
       } else if (NavToggle.firstChild.data === textShow) {
           for (
                   var NavChild = NavFrame.firstChild;
                   NavChild !== null;
                   NavChild = NavChild.nextSibling
               ) {
               if (NavChild.className === 'NavPic' || NavChild.className === 'NavContent') {
                   NavChild.style.display = 'block';
               }
           }
           NavToggle.firstChild.data = textHide;
       }
   }
   // Funktion zum Umschalten der Navigationsleiste
   function toggleNavigationBarFunction(NavToggle, NavFrame) {
       return function() {
           toggleNavigationBar(NavToggle, NavFrame);
           return false;
       };
   }
   // Über alle NavFrames iterieren
   var NavFrames = $content.find( 'div.NavFrame' );
   // Wenn mehr Navigationsleisten gefunden wurden und der Namensraum kein Vorlagen-Namensraum ist, verberge alle außer der voreingestellten Anzahl
   var initiallyToggle = showDefaultCount < NavFrames.length && mw.config.get( 'wgNamespaceNumber' ) !== 10;
   for (var i=0; i<NavFrames.length; i++) {
       var NavFrame = NavFrames[i];
       var NavToggle = document.createElement("a");
       NavToggle.className = 'NavToggle';
       NavToggle.setAttribute('href', '#');
       var NavToggleText = document.createTextNode(textHide);
       NavToggle.appendChild(NavToggleText);
       // Fügt den NavToggle-Button als erstes div-Element in < div class="NavFrame" > hinzu
       NavFrame.insertBefore(NavToggle, NavFrame.firstChild);
       // Fügt einen Klick-Handler zum Umschalten der Navigationsleiste hinzu
       NavToggle.onclick = toggleNavigationBarFunction(NavToggle, NavFrame);
       
       // Wenn initiallyToggle wahr ist, wird die Navigationsleiste beim ersten Laden der Seite umgeschaltet (versteckt)
       if (initiallyToggle) {
           toggleNavigationBar(NavToggle, NavFrame);
       } else { // Stellt sicher, dass die 'display'-Eigenschaft für jeden NavFrame immer gesetzt ist
           for (
                   var NavChild = NavFrame.firstChild;
                   NavChild !== null;
                   NavChild = NavChild.nextSibling
               ) {
               if (NavChild.className === 'NavPic' || NavChild.className === 'NavContent') {
                   NavChild.style.display = 'block';
               }
           }
       }
   }

})});