« MediaWiki:Common.js » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications Balise : Révoqué |
||
| Ligne 25 : | Ligne 25 : | ||
}); | }); | ||
// Construction du bandeau | |||
var banner = document.createElement( 'div' ); | |||
banner.id = 'vt-discord-banner'; | |||
banner.innerHTML = iconSVG | |||
+ '<span class="vt-banner-text">' | |||
+ '<strong>Communauté française</strong> — Rejoignez-nous sur Discord pour discuter, jouer, poser vos questions et contribuer au wiki !' | |||
+ '</span>' | |||
+ '<a class="vt-banner-btn" href="' + DISCORD_URL + '" target="_blank" rel="noopener noreferrer">' | |||
+ '↗ Rejoindre' | |||
+ '</a>' | |||
+ '<button class="vt-banner-close" aria-label="Fermer">×</button>'; | |||
document.body.appendChild( banner ); | |||
// Animation d'entrée (légère) | |||
requestAnimationFrame( function () { | |||
banner.style.opacity = '0'; | |||
banner.style.transform = 'translateY(100%)'; | |||
requestAnimationFrame( function () { | |||
banner.style.transition = 'transform 0.35s ease, opacity 0.35s ease'; | |||
banner.style.opacity = ''; | |||
banner.style.transform = ''; | |||
} ); | |||
} ); | |||
// Fermeture | |||
banner.querySelector( '.vt-banner-close' ).addEventListener( 'click', function () { | |||
banner.classList.add( 'vt-banner-hidden' ); | |||
localStorage.setItem( STORAGE_KEY, '1' ); | |||
setTimeout( function () { banner.remove(); }, 350 ); | |||
} ); | |||
}() ); | |||
/* LCP — fetchpriority=high sur la première image de l'article */ | |||
( function () { | |||
var img = document.querySelector( '#mw-content-text .mw-file-element' ); | |||
if ( img && !img.complete ) { | |||
img.setAttribute( 'fetchpriority', 'high' ); | |||
} | |||
} )(); | |||
Version du 25 mai 2026 à 12:27
/* Tout JavaScript ici sera chargé pour chaque page visitée par n’importe quel utilisateur. */
/* ######################################################################## */
/* ### IMAGEMAPEDIT ### */
/* ### ---------------------------------------------------------------- ### */
/* ### Description: permet de connaître les coordonnées d'une image. ### */
/* ### utile pour imagemap ### */
/* ######################################################################## */
if (mw.config.get('wgNamespaceNumber')==6 && mw.config.get('wgAction')=='view') {
mw.loader.load('//tools.wmflabs.org/imagemapedit/ime.js');
}
/* Tout code JavaScript placé ici sera chargé avec les pages accédées par les utilisateurs de l’habillage Vector */
// Ajout d'une icone devant les liens interlangues.
$(function() {
// Icône pour EN
$('li.interwiki-en > .interlanguage-link-target')
.prepend('<img style="margin-right:5px;" src="https://images.fallout.wiki/3/37/Wiki.webp" width="25" height="25">');
// Icône pour DE
$('li.interwiki-de > .interlanguage-link-target')
.prepend('<img style="margin-right:5px;" src="https://vaultpedia.de/images/b/b7/Fallout-Wiki_Icon.png" width="25" height="25">');
});
// Construction du bandeau
var banner = document.createElement( 'div' );
banner.id = 'vt-discord-banner';
banner.innerHTML = iconSVG
+ '<span class="vt-banner-text">'
+ '<strong>Communauté française</strong> — Rejoignez-nous sur Discord pour discuter, jouer, poser vos questions et contribuer au wiki !'
+ '</span>'
+ '<a class="vt-banner-btn" href="' + DISCORD_URL + '" target="_blank" rel="noopener noreferrer">'
+ '↗ Rejoindre'
+ '</a>'
+ '<button class="vt-banner-close" aria-label="Fermer">×</button>';
document.body.appendChild( banner );
// Animation d'entrée (légère)
requestAnimationFrame( function () {
banner.style.opacity = '0';
banner.style.transform = 'translateY(100%)';
requestAnimationFrame( function () {
banner.style.transition = 'transform 0.35s ease, opacity 0.35s ease';
banner.style.opacity = '';
banner.style.transform = '';
} );
} );
// Fermeture
banner.querySelector( '.vt-banner-close' ).addEventListener( 'click', function () {
banner.classList.add( 'vt-banner-hidden' );
localStorage.setItem( STORAGE_KEY, '1' );
setTimeout( function () { banner.remove(); }, 350 );
} );
}() );
/* LCP — fetchpriority=high sur la première image de l'article */
( function () {
var img = document.querySelector( '#mw-content-text .mw-file-element' );
if ( img && !img.complete ) {
img.setAttribute( 'fetchpriority', 'high' );
}
} )();