MediaWiki:Mobile.js
Apparence
Note : après avoir publié vos modifications, il se peut que vous deviez forcer le rechargement complet du cache de votre navigateur pour voir les changements.
- Firefox / Safari : maintenez la touche Maj (Shift) en cliquant sur le bouton Actualiser ou appuyez sur Ctrl + F5 ou Ctrl + R (⌘ + R sur un Mac).
- Google Chrome : appuyez sur Ctrl + Maj + R (⌘ + Shift + R sur un Mac).
- Edge : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl + F5.
/* Le Javascript placé ici n'affectera que les utilisateurs du site mobile */ /** * Bouton pour afficher/masquer un contenu. * Idée de départ : http://encyclopediadramatica.com/MediaWiki:Common.js par WhiteMystery (misterioblanco@gmail.com) * Créateur : [[Utilisateur:Misdre]] * Licence : WTFPL ou Creative Commons Paternité 2.5 ou suivantes * Plus d'informations ici : [[Aide:Afficher et masquer du contenu]] */ // Attention, les méthodes déclarées dans Mobile.js ne sont pas de portée globale, MobileFrontEnd rajoute un niveau d'encapsulation. var afficherMasquer = function(ev) { var sourceAction = ev.currentTarget; var classeCible = sourceAction.getAttribute("name"); var typeAction = sourceAction.getAttribute("value"); var balises = document.getElementsByTagName('*'); for ( var i = 0; i < balises.length; i++ ) { if ( $( balises[i] ).hasClass( classeCible ) ) { if ( typeAction == "afficher" ) { balises[i].style.display = ''; } else { balises[i].style.display = "none"; } } } var balisesBoutons = document.querySelectorAll('button:not(.masquage)'); for ( var i = 0; i < balisesBoutons.length; i++ ) { var tmp; if ( balisesBoutons[i].getAttribute("value") == "afficher" && balisesBoutons[i].getAttribute("name") == classeCible) { if ( typeof(balisesBoutons[i].textContent) != "undefined") { tmp = balisesBoutons[i].textContent; balisesBoutons[i].textContent = balisesBoutons[i].getAttribute("title"); } else { tmp = balisesBoutons[i].innerText; balisesBoutons[i].innerText = balisesBoutons[i].getAttribute("title"); } balisesBoutons[i].setAttribute("title", tmp); balisesBoutons[i].setAttribute("value", "masquer"); } else if ( balisesBoutons[i].getAttribute("value") == "masquer" && balisesBoutons[i].getAttribute("name") == classeCible) { if ( typeof(balisesBoutons[i].textContent) != "undefined") { tmp = balisesBoutons[i].textContent; balisesBoutons[i].textContent = balisesBoutons[i].getAttribute("title"); } else { tmp = balisesBoutons[i].innerText; balisesBoutons[i].innerText = balisesBoutons[i].getAttribute("title"); } balisesBoutons[i].setAttribute("title", tmp); balisesBoutons[i].setAttribute("value", "afficher"); } } }; function boutonsAfficherMasquer() { var balisesBoutons = document.querySelectorAll('button:not(.masquage)'); var cibles = []; var nbPartiesCachees = 0; for ( var i = 0; i < balisesBoutons.length; i++ ) { // on cherche les boutons afficher-masquer dans la page // on trouve un bouton qui servira à afficher une partie cachée if ( balisesBoutons[i].getAttribute("value") == "afficher" ) { if ( !balisesBoutons[i].hasAttribute("title") || balisesBoutons[i].getAttribute("title") === "" ) balisesBoutons[i].setAttribute("title", "[Masquer]"); if ( typeof(balisesBoutons[i].textContent) != "undefined") { if ( balisesBoutons[i].textContent === "" ) balisesBoutons[i].textContent = "[Afficher]"; } else { if ( balisesBoutons[i].innerText === "" ) balisesBoutons[i].innerText = "[Afficher]"; } balisesBoutons[i].addEventListener("click", afficherMasquer); balisesBoutons[i].style.display = 'inline-block'; nbPartiesCachees++; cibles[nbPartiesCachees-1] = balisesBoutons[i].getAttribute("name"); } else if ( balisesBoutons[i].getAttribute("value") == "masquer" ) { if ( !balisesBoutons[i].hasAttribute("title") || balisesBoutons[i].getAttribute("title") === "" ) balisesBoutons[i].setAttribute("title", "[Afficher]"); if ( typeof(balisesBoutons[i].textContent) != "undefined") { if ( balisesBoutons[i].textContent === "" ) balisesBoutons[i].textContent = "[Masquer]"; } else { if ( balisesBoutons[i].innerText === "" ) balisesBoutons[i].innerText = "[Masquer]"; } balisesBoutons[i].addEventListener("click", afficherMasquer); balisesBoutons[i].style.display = 'inline-block'; } } // on cache les parties censées être cachées (celles ciblées par un bouton afficher) var balises = document.getElementsByTagName('*'); for ( var i = 0; i < balises.length; i++ ) { for( var j = 0; j < cibles.length; j++ ) { if ( $( balises[i] ).hasClass( cibles[j] ) ) { balises[i].style.display = "none"; break; } } } } jQuery( boutonsAfficherMasquer ); /* Animation de capacité */ jQuery( function(){ var runAnimationElems = document.querySelectorAll(".run-animation"); for(var i=0; i<runAnimationElems.length; i++) { if(runAnimationElems[i].parentNode.querySelector(".url-animation a")) { runAnimationElems[i].addEventListener("click", function() { this.innerHTML = "<small>Chargement en cours...</small>"; this.parentNode.querySelector("a.image img").addEventListener("load", function() { this.parentNode.parentNode.querySelector(".run-animation").style.visibility="hidden"; }), this.parentNode.querySelector("a.image").setAttribute("href", "/Fichier:"+this.parentNode.querySelector(".url-animation a").getAttribute("title")); this.parentNode.querySelector("a.image img").setAttribute("src", this.parentNode.querySelector(".url-animation a").getAttribute("href")); }); } } });