From 7aa203150fc1a2ec79c681c13f0d486d531746eb Mon Sep 17 00:00:00 2001 From: George Halkiadakis Date: Sun, 12 Mar 2023 23:57:48 +0200 Subject: error pages; js system to support back/front-end --- html/assets/js/plugins/tabtoggle.js | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 html/assets/js/plugins/tabtoggle.js (limited to 'html/assets/js/plugins/tabtoggle.js') diff --git a/html/assets/js/plugins/tabtoggle.js b/html/assets/js/plugins/tabtoggle.js new file mode 100644 index 0000000..84a0508 --- /dev/null +++ b/html/assets/js/plugins/tabtoggle.js @@ -0,0 +1,27 @@ +$$plugins.define('tabtoggle', function (element, options) { + var activeTab = element.querySelector(".active"); + var sliderNav = element.querySelector(".tabToggle__tabs"); + var activeTabContent = document.querySelector("[data-tabToggle-content].active"); + + if (element.querySelector(".tabToggle__tab:nth-child(2)").classList.contains("active")) { + sliderNav.classList.add("slide"); + } + + element.addEventListener("click", function (e) { + if (!(e.target.classList.contains("active"))) { + activeTab.classList.remove("active"); + activeTab = e.target; + + activeTab.classList.add("active"); + sliderNav.classList.toggle("slide"); + activeTabContent.classList.remove("active"); + activeTabContent = document.querySelector("[data-tabToggle-content=" + activeTab.dataset.tabtoggleTarget) + activeTabContent.classList.add("active"); + + window.scrollTo({ + top: activeTabContent.getBoundingClientRect().top + window.scrollY - document.querySelector(".header").offsetHeight, + behavior: 'smooth' + }); + } + }); +}); -- cgit v1.2.3