-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjavascript.js
More file actions
105 lines (87 loc) · 3.62 KB
/
Copy pathjavascript.js
File metadata and controls
105 lines (87 loc) · 3.62 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
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
96
97
98
99
100
101
102
103
104
105
document.addEventListener("DOMContentLoaded", () => {
// Smooth Scroll for Navigation
document.querySelectorAll("nav ul li a").forEach(link => {
link.addEventListener("click", function (event) {
if (this.getAttribute("href").startsWith("#")) {
event.preventDefault();
const targetId = this.getAttribute("href").substring(1);
document.getElementById(targetId).scrollIntoView({
behavior: "smooth"
});
}
});
});
// JavaScript: A "Hello world" tier Javascript routine, loaded via an external file
console.log("Hello World")
// Dark Mode Toggle
const darkModeToggle = document.createElement("button");
darkModeToggle.innerText = "🌙 Toggle Dark Mode";
darkModeToggle.classList.add("dark-mode-toggle");
document.body.appendChild(darkModeToggle);
darkModeToggle.addEventListener("click", () => {
document.body.classList.toggle("dark-mode");
localStorage.setItem("darkMode", document.body.classList.contains("dark-mode"));
});
// Load dark mode preference
if (localStorage.getItem("darkMode") === "true") {
document.body.classList.add("dark-mode");
}
// Scroll Animation - Fade In & Slide Up
const elementsToAnimate = document.querySelectorAll(".fade-in, .slide-up");
const observer = new IntersectionObserver(entries => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add("visible");
}
});
}, { threshold: 0.3 });
elementsToAnimate.forEach(element => observer.observe(element));
});
document.addEventListener("DOMContentLoaded", () => {
const resumeBtn = document.getElementById("resume-btn");
const resumeBtnFloating = document.getElementById("resume-btn-floating");
const modal = document.getElementById("resume-modal");
const modalContent = document.querySelector(".modal-content");
const closeBtn = document.querySelector(".close-btn");
// Ensure modal is hidden when page loads
modal.style.display = "none";
// Function to Open Modal
function openModal() {
modal.style.display = "flex";
document.body.style.overflow = "hidden"; // Prevent scrolling
}
// Function to Close Modal
function closeModal() {
modal.style.display = "none";
document.body.style.overflow = "auto"; // Enable scrolling
}
// Ensure buttons exist before adding event listeners
if (resumeBtn) resumeBtn.addEventListener("click", openModal);
if (resumeBtnFloating) resumeBtnFloating.addEventListener("click", openModal);
if (closeBtn) closeBtn.addEventListener("click", closeModal);
// Close modal when clicking outside modal content
modal.addEventListener("click", (event) => {
if (event.target === modal) {
closeModal();
}
});
// Prevent clicks inside modal content from closing it
modalContent.addEventListener("click", (event) => {
event.stopPropagation();
});
// Close modal when pressing Escape key
document.addEventListener("keydown", (event) => {
if (event.key === "Escape") {
closeModal();
}
});
});
document.addEventListener("DOMContentLoaded", () => {
const form = document.querySelector("#form");
const submitButton = document.querySelector("#submit");
form.addEventListener("submit", (e) => {
submitButton.disabled = true; // Prevent multiple submissions
e.preventDefault();
window.location.href = "success.html";
});
});