-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
39 lines (32 loc) · 1.54 KB
/
script.js
File metadata and controls
39 lines (32 loc) · 1.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
"use strict";
const $themebtn=document.querySelector("[data-theme-btn]");
const $html=document.documentElement;
let isdark=window.matchMedia("(prefers-color-scheme)").matches;
if(sessionStorage.getItem("theme")){
$html.dataset.theme=sessionStorage.getItem("theme");
}else{
$html.dataset.theme=isdark?"dark":"light";
sessionStorage.setItem("theme",$html.dataset.theme);
}
const chngetheme=()=>{
$html.dataset.theme=sessionStorage.getItem("theme")==="light"?"dark":"light";
sessionStorage.setItem("theme",$html.dataset.theme);
}
$themebtn.addEventListener("click",chngetheme);
const $tabbtns = document.querySelectorAll("[data-tab-btn]"); // Select all tab buttons
const $tabContents = document.querySelectorAll("[data-tab-content]"); // Select all tab contents
let lastActivetab = document.querySelector("[data-tab-content].active"); // Get initially active tab content
let lastActivetabbtn = document.querySelector("[data-tab-btn].active"); // Get initially active button
$tabbtns.forEach(item => {
item.addEventListener("click", function () {
if (lastActivetab) lastActivetab.classList.remove("active");
if (lastActivetabbtn) lastActivetabbtn.classList.remove("active");
const tabContent = document.querySelector(`[data-tab-content="${item.dataset.tabBtn}"]`);
if (tabContent) {
tabContent.classList.add("active");
this.classList.add("active");
lastActivetab = tabContent;
lastActivetabbtn = this;
}
});
});