-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
75 lines (65 loc) · 2.45 KB
/
script.js
File metadata and controls
75 lines (65 loc) · 2.45 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
const navToggle = document.querySelector('.nav-toggle');
const navLinks = document.querySelector('.nav-links');
const yearElement = document.getElementById('year');
const filterButtons = document.querySelectorAll('.filter-button');
const productCards = document.querySelectorAll('.product-card');
const cartCount = document.querySelector('.cart-count');
const addToCartButtons = document.querySelectorAll('[data-add-to-cart]');
const cartToast = document.querySelector('.cart-toast');
let cartItems = 0;
if (navToggle && navLinks) {
navToggle.addEventListener('click', () => {
const isOpen = navLinks.classList.toggle('open');
navToggle.setAttribute('aria-expanded', String(isOpen));
});
navLinks.querySelectorAll('a').forEach((link) => {
link.addEventListener('click', () => {
navLinks.classList.remove('open');
navToggle.setAttribute('aria-expanded', 'false');
});
});
}
if (yearElement) {
yearElement.textContent = new Date().getFullYear();
}
if (filterButtons.length && productCards.length) {
filterButtons.forEach((button) => {
button.addEventListener('click', () => {
const filter = button.dataset.filter;
filterButtons.forEach((btn) => btn.classList.toggle('active', btn === button));
productCards.forEach((card) => {
const category = card.dataset.category;
const shouldShow = filter === 'alle' || category === filter;
card.style.display = shouldShow ? '' : 'none';
});
});
});
}
const showCartToast = () => {
if (!cartToast) return;
cartToast.hidden = false;
cartToast.classList.add('show');
clearTimeout(showCartToast.timeoutId);
showCartToast.timeoutId = setTimeout(() => {
cartToast.classList.remove('show');
}, 2200);
};
if (addToCartButtons.length && cartCount) {
addToCartButtons.forEach((button) => {
button.addEventListener('click', () => {
cartItems += 1;
cartCount.textContent = String(cartItems);
showCartToast();
});
});
}
const newsletterForm = document.querySelector('.newsletter-form');
if (newsletterForm) {
newsletterForm.addEventListener('submit', (event) => {
event.preventDefault();
const formData = new FormData(newsletterForm);
const email = formData.get('email');
alert(`Danke fürs Anmelden, ${email}!`);
newsletterForm.reset();
});
}