MediaWiki:Template:MainPageInfopush.js: Difference between revisions

From VRChat Wiki
No edit summary
No edit summary
Line 23: Line 23:
}, autoAdvanceEvery);
}, autoAdvanceEvery);
}
}
action.addEventListener("click", () => {
const { url } = visibleContent.get(visibleContentIds[currentOffset]);
if (url) open(url);
});


navigation
navigation

Revision as of 01:06, 3 August 2024

$(
	(function () {
		for (const infopush of document.querySelectorAll(".tpl-infopush")) {
			try {
				const content = infopush.querySelector(".tpl-infopush-content");
				const total = content.querySelectorAll("img").length;
				
				const navigation = infopush.querySelector(".tpl-infopush-navigation");

				let currentOffset = 0;
				function showSlide(index) {
					currentOffset = (index + total) % total;
					content.style.transform = `translateX(-${currentOffset * 100}%)`;
				}

				const autoAdvanceEvery = 5000;

				let autoAdvanceInterval;
				function resetAutoAdvance() {
					if (autoAdvanceInterval) clearInterval(autoAdvanceInterval);
					autoAdvanceInterval = setInterval(function () {
						showSlide(currentOffset + 1);
					}, autoAdvanceEvery);
				}

				navigation
					.querySelector(".tpl-infopush-navigation-previous")
					.addEventListener("click", () => {
						showSlide(currentOffset - 1);
						resetAutoAdvance();
					});

				navigation
					.querySelector(".tpl-infopush-navigation-next")
					.addEventListener("click", () => {
						showSlide(currentOffset + 1);
						resetAutoAdvance();
					});

				resetAutoAdvance();
				showSlide(0);
			} catch (reason) {
				console.warn(
					"Template:MainPageInfopush",
					"Couldn't initialize infopush.",
					reason
				);
			}
		}
	})()
);