|
1 | | -<<<<<<< HEAD |
2 | | -<<<<<<< HEAD |
3 | | -======= |
4 | | ->>>>>>> 5ce3cde (Icon pisition) |
5 | 1 | // ===== Particles.js Hero Background (Dynamic for Dark Mode) ===== |
6 | 2 | // ===== Initialize Particles.js with Theme-Aware Colors ===== (Applied before) |
7 | 3 | // ===== Initialize Particles.js with Orange (Light) & Cyan (Dark) Themes ===== (Applied) |
@@ -128,169 +124,3 @@ function updateToggleIcon() { |
128 | 124 | darkModeToggle.style.color = "#fff"; |
129 | 125 | } |
130 | 126 | } |
131 | | - |
132 | | -<<<<<<< HEAD:services.js |
133 | | -<<<<<<< HEAD |
134 | | -======= |
135 | | ->>>>>>> 1ffaec2 (Favicon added & services created) |
136 | | -======= |
137 | | ->>>>>>> 5ce3cde (Icon pisition) |
138 | | -// Hamburger Menu |
139 | | -const hamburger = document.getElementById("hamburger"); |
140 | | -const navLinks = document.getElementById("nav-links"); |
141 | | - |
142 | | -if (hamburger && navLinks) { |
143 | | - hamburger.addEventListener("click", () => { |
144 | | - navLinks.classList.toggle("active"); |
145 | | - }); |
146 | | -} |
147 | | - |
148 | | -// Scroll Fade-in Animation with staggered delay |
149 | | -document.addEventListener("DOMContentLoaded", function () { |
150 | | - const faders = document.querySelectorAll(".fade-in"); |
151 | | - |
152 | | - const appearOptions = { |
153 | | - threshold: 0.2, |
154 | | - rootMargin: "0px 0px -50px 0px", |
155 | | - }; |
156 | | - |
157 | | - const appearOnScroll = new IntersectionObserver(function (entries, observer) { |
158 | | - entries.forEach(entry => { |
159 | | - if (!entry.isIntersecting) return; |
160 | | - entry.target.classList.add("visible"); |
161 | | - observer.unobserve(entry.target); |
162 | | - }); |
163 | | - }, appearOptions); |
164 | | - |
165 | | - faders.forEach(fader => { |
166 | | - appearOnScroll.observe(fader); |
167 | | - }); |
168 | | -}); |
169 | | - |
170 | | -/* ===== Scroll-to-Top Button ===== */ |
171 | | -const scrollTopBtn = document.getElementById("scrollTopBtn"); |
172 | | - |
173 | | -window.addEventListener("scroll", () => { |
174 | | - if (document.documentElement.scrollTop > 150) { |
175 | | - scrollTopBtn.classList.add("show"); |
176 | | - } else { |
177 | | - scrollTopBtn.classList.remove("show"); |
178 | | - } |
179 | | -}); |
180 | | - |
181 | | -scrollTopBtn.addEventListener("click", () => { |
182 | | - window.scrollTo({ top: 0, behavior: "smooth" }); |
183 | | -}); |
184 | | - |
185 | | -<<<<<<< HEAD |
186 | | -<<<<<<< HEAD |
187 | | -======= |
188 | | -// ===== Particles.js Hero Background (Dynamic for Dark Mode) ===== |
189 | | -function initParticles() { |
190 | | - const isDark = document.body.classList.contains("dark"); |
191 | | - |
192 | | - particlesJS("particles-js", { |
193 | | - "particles": { |
194 | | - "number": { |
195 | | - "value": 60, |
196 | | - "density": { "enable": true, "value_area": 800 } |
197 | | - }, |
198 | | - "color": { "value": isDark ? "#00e5ff" : "#ffffff" }, |
199 | | - "shape": { "type": "circle" }, |
200 | | - "opacity": { |
201 | | - "value": 0.6, |
202 | | - "random": true, |
203 | | - "anim": { |
204 | | - "enable": true, |
205 | | - "speed": 0.5, |
206 | | - "opacity_min": 0.1, |
207 | | - "sync": false |
208 | | - } |
209 | | - }, |
210 | | - "size": { |
211 | | - "value": 3, |
212 | | - "random": true, |
213 | | - "anim": { "enable": false } |
214 | | - }, |
215 | | - "line_linked": { |
216 | | - "enable": true, |
217 | | - "distance": 120, |
218 | | - "color": isDark ? "#00bcd4" : "#ffffff", |
219 | | - "opacity": 0.3, |
220 | | - "width": 1 |
221 | | - }, |
222 | | - "move": { |
223 | | - "enable": true, |
224 | | - "speed": 2, |
225 | | - "direction": "none", |
226 | | - "random": true, |
227 | | - "straight": false, |
228 | | - "bounce": false, |
229 | | - "attract": { "enable": false } |
230 | | - } |
231 | | - }, |
232 | | - "interactivity": { |
233 | | - "detect_on": "canvas", |
234 | | - "events": { |
235 | | - "onhover": { "enable": true, "mode": "repulse" }, |
236 | | - "onclick": { "enable": false } |
237 | | - }, |
238 | | - "modes": { |
239 | | - "repulse": { "distance": 100, "duration": 0.4 } |
240 | | - } |
241 | | - }, |
242 | | - "retina_detect": true |
243 | | - }); |
244 | | -} |
245 | | - |
246 | | -// Preserve Dark Mode Preference |
247 | | -if (localStorage.getItem("theme") === "dark") { |
248 | | - document.body.classList.add("dark"); |
249 | | -} |
250 | | - |
251 | | -// ===== Initialize on Load ===== |
252 | | -document.addEventListener("DOMContentLoaded", () => { |
253 | | - initParticles(); |
254 | | -}); |
255 | | - |
256 | | -// ===== Re-initialize on Dark Mode Toggle ===== |
257 | | -const darkModeToggle = document.getElementById("darkModeToggle"); |
258 | | - |
259 | | -// Update preference on toggle |
260 | | -if (darkModeToggle) { |
261 | | - darkModeToggle.addEventListener("click", () => { |
262 | | - const isDark = document.body.classList.toggle("dark"); |
263 | | - localStorage.setItem("theme", isDark ? "dark" : "light"); |
264 | | - updateOverlayGradient(); |
265 | | - |
266 | | - setTimeout(() => { |
267 | | - if (window.pJSDom && pJSDom.length) { |
268 | | - pJSDom[0].pJS.fn.vendors.destroypJS(); |
269 | | - document.getElementById("particles-js").innerHTML = ""; |
270 | | - } |
271 | | - initParticles(); |
272 | | - }, 300); |
273 | | - }); |
274 | | -} |
275 | | - |
276 | | -function updateOverlayGradient() { |
277 | | - const overlay = document.querySelector(".gradient-overlay"); |
278 | | - if (!overlay) return; |
279 | | - |
280 | | - if (document.body.classList.contains("dark")) { |
281 | | - overlay.style.background = |
282 | | - "linear-gradient(45deg, rgba(33,150,243,0.25), rgba(0,0,0,0.3), rgba(63,81,181,0.3))"; |
283 | | - } else { |
284 | | - overlay.style.background = |
285 | | - "linear-gradient(45deg, rgba(255,87,34,0.3), rgba(255,255,255,0.15), rgba(255,152,0,0.25))"; |
286 | | - } |
287 | | -} |
288 | | - |
289 | | - |
290 | | - |
291 | | ->>>>>>> 1ffaec2 (Favicon added & services created) |
292 | | -======= |
293 | | ->>>>>>> 5ce3cde (Icon pisition) |
294 | | - |
295 | | -======= |
296 | | ->>>>>>> a6b9b59 (Design added index + services page):js/services.js |
0 commit comments