Basculer le menu
Changer de menu des préférences
Basculer le menu personnel
Non connecté(e)
Votre adresse IP sera visible au public si vous faites des modifications.

« MediaWiki:Common.js » : différence entre les versions

Page de l’interface de MediaWiki
Hiob (discussion | contributions)
m citizen style
Hiob (discussion | contributions)
Aucun résumé des modifications
Ligne 254 : Ligne 254 :


/* === fin Modèle:Règle === */
/* === fin Modèle:Règle === */
/* MiniCard Grid - Ajustement dynamique des colonnes */
( function () {
    'use strict';
    function adjustMiniCardGrids() {
        document.querySelectorAll( '.minicard-grid' ).forEach( function ( grid ) {
            var cards = grid.querySelectorAll( '.minicard' );
            var total = cards.length;
            if ( total === 0 ) return;
            var containerWidth = grid.offsetWidth;
            var minCardWidth = 130; /* largeur minimale souhaitée par carte */
            var gap = 12;
            /* Nombre max de colonnes qui tiennent dans le conteneur */
            var maxCols = Math.floor(
                ( containerWidth + gap ) / ( minCardWidth + gap )
            );
            maxCols = Math.max( 1, Math.min( maxCols, total ) );
            /* On cherche le diviseur de total le plus proche de maxCols */
            var bestCols = 1;
            for ( var n = 1; n <= maxCols; n++ ) {
                if ( total % n === 0 ) {
                    bestCols = n;
                }
            }
            /* Si aucun diviseur exact, on prend maxCols directement */
            /* (dernière ligne incomplète inévitable, mais on maximise l'usage) */
            if ( bestCols === 1 && maxCols > 1 ) {
                bestCols = maxCols;
            }
            grid.style.gridTemplateColumns = 'repeat(' + bestCols + ', 1fr)';
        } );
    }
    /* Debounce pour éviter trop d'appels au resize */
    var resizeTimer;
    function onResize() {
        clearTimeout( resizeTimer );
        resizeTimer = setTimeout( adjustMiniCardGrids, 100 );
    }
    /* Init au chargement */
    if ( document.readyState === 'loading' ) {
        document.addEventListener( 'DOMContentLoaded', adjustMiniCardGrids );
    } else {
        adjustMiniCardGrids();
    }
    window.addEventListener( 'resize', onResize );
}() );
Les témoins (''cookies'') nous aident à fournir nos services. En utilisant nos services, vous acceptez notre utilisation de témoins.