BLUESERVER commited on
Commit
9c2bd9b
·
verified ·
1 Parent(s): eda29bb

Create script.js

Browse files
Files changed (1) hide show
  1. script.js +67 -0
script.js ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ document.addEventListener('DOMContentLoaded', () => {
2
+ const linkCards = document.querySelectorAll('.link-card');
3
+ const darkModeToggle = document.getElementById('dark-mode-toggle');
4
+
5
+ linkCards.forEach(card => {
6
+ card.addEventListener('click', (e) => {
7
+ e.preventDefault();
8
+ const url = card.getAttribute('href');
9
+
10
+ // Add a small delay before opening the link
11
+ setTimeout(() => {
12
+ window.open(url, '_blank');
13
+ }, 300);
14
+
15
+ // Add a visual feedback effect
16
+ card.style.transform = 'scale(0.95)';
17
+ setTimeout(() => {
18
+ card.style.transform = 'scale(1)';
19
+ }, 150);
20
+ });
21
+ });
22
+
23
+ function toggleDarkMode() {
24
+ document.body.classList.toggle('light-mode');
25
+ localStorage.setItem('darkMode', document.body.classList.contains('light-mode') ? 'light' : 'dark');
26
+ }
27
+
28
+ darkModeToggle.addEventListener('click', toggleDarkMode);
29
+
30
+ // Check for saved dark mode preference
31
+ if (localStorage.getItem('darkMode') === 'light') {
32
+ toggleDarkMode();
33
+ }
34
+
35
+ // Add fade-in animation to cards
36
+ linkCards.forEach(card => {
37
+ card.classList.add('fade-in');
38
+ });
39
+
40
+ // Quotes functionality
41
+ function fetchRandomQuote() {
42
+ fetch('./quotes.json')
43
+ .then(response => {
44
+ if (!response.ok) {
45
+ throw new Error(`HTTP error! Status: ${response.status}`);
46
+ }
47
+ return response.json();
48
+ })
49
+ .then(quotes => {
50
+ const randomIndex = Math.floor(Math.random() * quotes.length);
51
+ const randomQuote = quotes[randomIndex];
52
+ document.getElementById('quote-text').textContent = `${randomQuote.quote}`;
53
+ document.getElementById('quote-author').textContent = `- ${randomQuote.author}`;
54
+ })
55
+ .catch(error => {
56
+ console.error('Error fetching quote:', error);
57
+ document.getElementById('quote-text').textContent = 'Failed to load quote';
58
+ document.getElementById('quote-author').textContent = '';
59
+ });
60
+ }
61
+
62
+ // Fetch a new quote every 60 seconds
63
+ setInterval(fetchRandomQuote, 60000);
64
+
65
+ // Initial quote fetch
66
+ fetchRandomQuote();
67
+ });