-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path6-script.js
113 lines (95 loc) · 3.92 KB
/
6-script.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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
/*Icone favoris*/
document.addEventListener("DOMContentLoaded", function () {
// Gestionnaire d'événements pour les icônes de favoris
const favoriteIcons = document.querySelectorAll(".favorite-icon");
favoriteIcons.forEach((icon) => {
icon.addEventListener("click", function () {
this.classList.toggle("favorited");
const productId = this.getAttribute("data-product-id");
fetch("27-add-remove-favorite.php", {
method: "POST",
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
body: `product_id=${productId}`
})
.then(response => response.json())
.then(data => {
if (data.status === "error") {
document.getElementById("errorMessage").innerHTML = data.message;
showErrorMessagePopup();
this.classList.toggle("favorited"); // Remettre l'état précédent si erreur
}
// Vous pouvez ajouter ici une logique supplémentaire pour gérer le succès
});
});
});
});
/* Affichage pop-up */
function showErrorMessagePopup() {
const errorMessageElement = document.getElementById("errorMessage");
const backdropElement = document.createElement('div');
backdropElement.id = 'errorMessage-backdrop';
// Affichez le pop-up et l'arrière-plan semi-transparent
errorMessageElement.style.display = 'block';
backdropElement.style.display = 'block';
document.body.appendChild(backdropElement);
// Ajoutez un événement click pour fermer le pop-up lorsqu'on clique en dehors
backdropElement.addEventListener('click', function() {
errorMessageElement.style.display = 'none';
this.remove();
});
}
/* Pagination affichage produits */
document.addEventListener("DOMContentLoaded", function () {
let currentPage = 1;
let itemsPerPage;
// Déterminez le nombre d'articles par page en fonction de la largeur de la fenêtre
const width = window.innerWidth;
if (width > 1100) { // Ordinateur
itemsPerPage = 35;
} else if (width > 750) { // Tablette
itemsPerPage = 18;
} else { // Téléphone
itemsPerPage = 20;
}
const cards = document.querySelectorAll(".product-card-produits"); // Sélectionnez les éléments .product-card
const totalPages = Math.ceil(cards.length / itemsPerPage);
function showPage(page) {
cards.forEach((card) => {
card.classList.remove("visible");
card.style.display = "none"; // Cachez l'élément
updateProgressBarProduits(currentPage, totalPages);
});
const start = (page - 1) * itemsPerPage;
const end = start + itemsPerPage;
cards.forEach((card, index) => {
if (index >= start && index < end) {
card.classList.add("visible");
card.style.display = "block"; // Montrez l'élément
}
});
}
document.getElementById("nextPagep").addEventListener("click", () => {
if (currentPage < totalPages) {
currentPage++;
showPage(currentPage);
updateProgressBarProduits(currentPage, totalPages); // Mettez à jour cet appel
}
});
document.getElementById("prevPagep").addEventListener("click", () => {
if (currentPage > 1) {
currentPage--;
showPage(currentPage);
updateProgressBarProduits(currentPage, totalPages); // Mettez à jour cet appel
}
});
showPage(currentPage); // Affichez la première page au chargement initial
});
/* Barre de chargement carrousel Produits */
function updateProgressBarProduits(currentPage, totalPages) { // Renommez cette fonction
const progressBar = document.querySelector('.progress-bar-produits');
const percentage = (currentPage / totalPages) * 98;
progressBar.style.width = percentage + '%';
progressBar.innerHTML = currentPage + ' / ' + totalPages;
}