-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscripts.js
95 lines (82 loc) · 3.07 KB
/
scripts.js
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
// Function to open tabs
function openTab(evt, subjectName) {
var i, tabcontent, tablinks;
// Hide all tabcontent
tabcontent = document.getElementsByClassName("tabcontent");
for (i = 0; i < tabcontent.length; i++) {
tabcontent[i].style.display = "none";
}
// Remove the 'active' class from all tablinks
tablinks = document.getElementsByClassName("tablinks");
for (i = 0; i < tablinks.length; i++) {
tablinks[i].className = tablinks[i].className.replace(" active", "");
}
// Show the selected tab and add 'active' class to clicked tablink
document.getElementById(subjectName).style.display = "block";
evt.currentTarget.className += " active";
}
// Function to copy code and display message
function copyCode(id, button) {
const codeElement = document.getElementById(id);
const text = codeElement.innerText;
navigator.clipboard.writeText(text).then(() => {
const message = button.nextElementSibling;
message.innerText = "Copied!";
message.style.display = "inline-block";
message.style.opacity = 1;
setTimeout(() => {
message.style.opacity = 0;
message.style.display = "none";
}, 2000); // Fade out after 2 seconds
}).catch(err => {
console.error('Failed to copy text: ', err);
});
}
// Add functionality to collapsible buttons
var coll = document.getElementsByClassName("collapsible");
for (var i = 0; i < coll.length; i++) {
coll[i].addEventListener("click", function() {
this.classList.toggle("active");
var content = this.nextElementSibling;
if (content.style.display === "block") {
content.style.display = "none";
} else {
content.style.display = "block";
}
});
}
// Function to switch between dark and light modes
function toggleMode() {
const body = document.body;
const modeButton = document.getElementById("modeToggle");
// Check current mode and switch
if (body.classList.contains("dark-mode")) {
body.classList.remove("dark-mode");
body.classList.add("light-mode");
modeButton.innerText = "Switch to Dark Mode";
localStorage.setItem("theme", "light");
} else {
body.classList.remove("light-mode");
body.classList.add("dark-mode");
modeButton.innerText = "Switch to Light Mode";
localStorage.setItem("theme", "dark");
}
}
// Function to load saved theme from localStorage
function loadTheme() {
const savedTheme = localStorage.getItem("theme");
const body = document.body;
const modeButton = document.getElementById("modeToggle");
if (savedTheme === "light") {
body.classList.remove("dark-mode");
body.classList.add("light-mode");
modeButton.innerText = "Switch to Dark Mode";
} else {
body.classList.add("dark-mode");
modeButton.innerText = "Switch to Light Mode";
}
}
// Event listener for toggle button
document.getElementById("modeToggle").addEventListener("click", toggleMode);
// Load the saved theme on page load
window.onload = loadTheme;