Difference between revisions of "MediaWiki:Common.js"
Jump to navigation
Jump to search
(Remove Flattr code) |
m |
||
Line 1: | Line 1: | ||
/* Any JavaScript here will be loaded for all users on every page load. */ | /* Any JavaScript here will be loaded for all users on every page load. */ | ||
+ | |||
+ | filterSelection("all") | ||
+ | function filterSelection(c) { | ||
+ | var x, i; | ||
+ | x = document.getElementsByClassName("ManualsfilterLi"); | ||
+ | if (c == "all") c = ""; | ||
+ | // Add the "show" class (display:block) to the filtered elements, and remove the "show" class from the elements that are not selected | ||
+ | for (i = 0; i < x.length; i++) { | ||
+ | w3RemoveClass(x[i], "Manualsshow"); | ||
+ | if (x[i].className.indexOf(c) > -1) w3AddClass(x[i], "Manualsshow"); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Show filtered elements | ||
+ | function w3AddClass(element, name) { | ||
+ | var i, arr1, arr2; | ||
+ | arr1 = element.className.split(" "); | ||
+ | arr2 = name.split(" "); | ||
+ | for (i = 0; i < arr2.length; i++) { | ||
+ | if (arr1.indexOf(arr2[i]) == -1) { | ||
+ | element.className += " " + arr2[i]; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Hide elements that are not selected | ||
+ | function w3RemoveClass(element, name) { | ||
+ | var i, arr1, arr2; | ||
+ | arr1 = element.className.split(" "); | ||
+ | arr2 = name.split(" "); | ||
+ | for (i = 0; i < arr2.length; i++) { | ||
+ | while (arr1.indexOf(arr2[i]) > -1) { | ||
+ | arr1.splice(arr1.indexOf(arr2[i]), 1); | ||
+ | } | ||
+ | } | ||
+ | element.className = arr1.join(" "); | ||
+ | } | ||
+ | |||
+ | // Add active class to the current control button (highlight it) | ||
+ | var btnContainer = document.getElementById("myBtnContainer"); | ||
+ | var btns = btnContainer.getElementsByClassName("Manualsbtn"); | ||
+ | for (var i = 0; i < btns.length; i++) { | ||
+ | btns[i].addEventListener("click", function() { | ||
+ | var current = document.getElementsByClassName("active"); | ||
+ | current[0].className = current[0].className.replace(" active", ""); | ||
+ | this.className += " active"; | ||
+ | }); | ||
+ | } |
Revision as of 10:42, 27 May 2020
/* Any JavaScript here will be loaded for all users on every page load. */ filterSelection("all") function filterSelection(c) { var x, i; x = document.getElementsByClassName("ManualsfilterLi"); if (c == "all") c = ""; // Add the "show" class (display:block) to the filtered elements, and remove the "show" class from the elements that are not selected for (i = 0; i < x.length; i++) { w3RemoveClass(x[i], "Manualsshow"); if (x[i].className.indexOf(c) > -1) w3AddClass(x[i], "Manualsshow"); } } // Show filtered elements function w3AddClass(element, name) { var i, arr1, arr2; arr1 = element.className.split(" "); arr2 = name.split(" "); for (i = 0; i < arr2.length; i++) { if (arr1.indexOf(arr2[i]) == -1) { element.className += " " + arr2[i]; } } } // Hide elements that are not selected function w3RemoveClass(element, name) { var i, arr1, arr2; arr1 = element.className.split(" "); arr2 = name.split(" "); for (i = 0; i < arr2.length; i++) { while (arr1.indexOf(arr2[i]) > -1) { arr1.splice(arr1.indexOf(arr2[i]), 1); } } element.className = arr1.join(" "); } // Add active class to the current control button (highlight it) var btnContainer = document.getElementById("myBtnContainer"); var btns = btnContainer.getElementsByClassName("Manualsbtn"); for (var i = 0; i < btns.length; i++) { btns[i].addEventListener("click", function() { var current = document.getElementsByClassName("active"); current[0].className = current[0].className.replace(" active", ""); this.className += " active"; }); }