Difference between revisions of "MediaWiki:Common.js"
Line 15: | Line 15: | ||
d.textContent = (text || ""); | d.textContent = (text || ""); | ||
return d; | return d; | ||
− | } | + | }, |
// Function to streamline getElementById | // Function to streamline getElementById | ||
− | + | $i = function (id, top) { | |
if(top === undefined) { | if(top === undefined) { | ||
top = document; | top = document; |
Revision as of 05:43, 28 November 2019
/* Any JavaScript here will be loaded for all users on every page load. */ // Function to streamline element creation var $e = function (tag, text, classes, id) { var d = document.createElement(tag), cl = d.classList; if (classes !== undefined) { classes.forEach( function(c) { cl.add(c); }); } if(id) { d.id = id; } d.textContent = (text || ""); return d; }, // Function to streamline getElementById $i = function (id, top) { if(top === undefined) { top = document; } return top.getElementById(id); }; // Function to streamline querySelector var $q = function (query, top) { if(top === undefined) { top = document; } return top.querySelector(query); }; // Function to streamline querySelectorAll var $a = function (query, top) { if(top === undefined) { top = document; } return top.querySelectorAll(query); }; // Function to look up a CSS variable (not needed) /*var $v = function (variable) { return window.getComputedStyle(document.documentElement).getPropertyValue(variable).trim(); };*/ // Function to set CSS variables var $sv = function (variable, value) { document.documentElement.style.setProperty(variable, value); }; // Look for a Div that indicates we're a lexicon page var lexiconInfo = $i("lexiconInfo"); // Swappers have these two attributes. var swapperNexus = $a("input[data-swapper][data-swap-interval]"); // // TEXT SWAP-OUT ANIMATION // if(swapperNexus.length) { // Check each swapper separately. swapperNexus.forEach(function(nex) { // Define variables inside here to hold stuff for the setInterval loop. var overlord = $i("swap-override"); // A checkbox to pause ALL swapping on a page var inverter = $i("swap-inverter"); // A checkbox to invert ALL animations (check to animate) var ds = nex.dataset; var ident = ds.swapper; // Name var rep = parseInt(ds.swapInterval); // Duration (in milliseconds) setInterval(function(){ var x = nex.checked; if(!overlord.checked && (inverter.checked ? x : !x) ) { // Pause when checked $a("[data-swap-nexus=\"" + ident + "\"]").forEach(function(d) { // Rotate out the text! var swap = d.dataset.swap.split(" "); var newText = swap.shift(); swap.push(newText); d.textContent = newText; d.dataset.swap = swap.join(" "); }); } }, rep); }); }