MediaWiki:Common.js: Difference between revisions

From [N8]
Jump to navigation Jump to search
Mr Pie 5 (talk | contribs)
m I think the compiler is mad I missed some semicolons?
Mr Pie 5 (talk | contribs)
Ugh, can't use for-of in es5
Line 15: Line 15:
["Guides", ""]
["Guides", ""]
];
];
for(var link of links){
for(var i = 0; i < links.length; i++){
      var link = links[i];
$("<a>").text(link[0]).attr("href","https://wiki.geministation.com/" + link[0]).append($("<img>").attr("src", link[1])).appendTo(sidebarList);
$("<a>").text(link[0]).attr("href","https://wiki.geministation.com/" + link[0]).append($("<img>").attr("src", link[1])).appendTo(sidebarList);
}
}

Revision as of 00:56, 26 May 2022

/* Any JavaScript here will be loaded for all users on every page load. */

$(function(){
	
	// Adds the left fixed sidebar
	var sidebar = $("<nav>").attr("id","sidebar").appendTo(document.body);
	var sidebarList = $("<ul>").attr("id", "sidebar__links").appendTo(sidebar);
	$("<a>").text("Wiki").attr("href","https://wiki.geministation.com").append($("<img>").attr("src", "https://wiki.geministation.com/images/f/f7/G.png")).appendTo(sidebarList);
	var links = [
	["Mods", ""],
	["Items", ""],
	["Ships", ""],
	["Places", ""],
	["Missions", ""],
	["Guides", ""]
	];
	for(var i = 0; i < links.length; i++){
      	var link = links[i];
		$("<a>").text(link[0]).attr("href","https://wiki.geministation.com/" + link[0]).append($("<img>").attr("src", link[1])).appendTo(sidebarList);
	}
	
	// Creates a sliding gallery (carousel), such as the one on the main page
	function galleryRight(galleryContainer, width){
		var gallery = galleryContainer.querySelector('ul.gallery');
		gallery.scroll({
			left:parseInt(gallery.scrollLeft)+width+4,
			behavior:'smooth',
		});
	}
	function galleryLeft(galleryContainer, width){
		var gallery = galleryContainer.querySelector('ul.gallery');
		gallery.scroll({
			left:parseInt(gallery.scrollLeft)-width-4,
			behavior:'smooth',
		});
	}
	$(".sliding-gallery").each(function(gallery){
		var $buttons = $("<div></div>").addClass("sliding-gallery--buttons");
		var width = this.getElementsByTagName("img")[0].getAttribute("width");
		$("<button></button>").addClass("sliding-gallery--button right").text("🡒").on("click", galleryRight.bind(this, this, parseInt(width))).appendTo($buttons);
		$("<button></button>").addClass("sliding-gallery--button left").text("🡐").on("click", galleryLeft.bind(this, this, parseInt(width))).appendTo($buttons);
		$buttons.appendTo(this);
	});
});