ajouter un zoom out lorsqu'une carte apparait sur l'ecran ( conserver la taille finalle actuelle

This commit is contained in:
2024-12-24 02:05:34 +01:00
parent 86d6dc977b
commit 39adc39b45
2 changed files with 70 additions and 8 deletions

View File

@@ -10,12 +10,12 @@ liste_carte_defaut:
image: static/css/img/cartes/E_b.webp image: static/css/img/cartes/E_b.webp
contenu: E contenu: E
couleur: bleu couleur: bleu
donné: non donné: oui
- numero: 3 - numero: 3
image: static/css/img/cartes/R_b.webp image: static/css/img/cartes/R_b.webp
contenu: R contenu: R
couleur: bleu couleur: bleu
donné: non donné: oui
- numero: 4 - numero: 4
image: static/css/img/cartes/P_j.webp image: static/css/img/cartes/P_j.webp
contenu: P contenu: P
@@ -25,7 +25,7 @@ liste_carte_defaut:
image: static/css/img/cartes/T_b.webp image: static/css/img/cartes/T_b.webp
contenu: T contenu: T
couleur: bleu couleur: bleu
donné: non donné: oui
- numero: 6 - numero: 6
image: static/css/img/cartes/E_j.webp image: static/css/img/cartes/E_j.webp
contenu: E contenu: E
@@ -41,12 +41,12 @@ liste_carte_échangé:
image: static/css/img/cartes/L_j.webp image: static/css/img/cartes/L_j.webp
contenu: L contenu: L
couleur: violet couleur: violet
recupéré: non recupéré: oui
- numero: 9 - numero: 9
image: static/css/img/cartes/I_j.webp image: static/css/img/cartes/I_j.webp
contenu: I contenu: I
couleur: violet couleur: violet
recupéré: non recupéré: oui
- numero: 10 - numero: 10
image: static/css/img/cartes/U_b.webp image: static/css/img/cartes/U_b.webp
contenu: U contenu: U
@@ -56,7 +56,7 @@ liste_carte_échangé:
image: static/css/img/cartes/S_j.webp image: static/css/img/cartes/S_j.webp
contenu: S contenu: S
couleur: violet couleur: violet
recupéré: non recupéré: oui
- numero: 12 - numero: 12
image: static/css/img/cartes/O_b.webp image: static/css/img/cartes/O_b.webp
contenu: O contenu: O

View File

@@ -1,3 +1,56 @@
let dernierHash = null;
async function obtenirHashFichier() {
try {
const response = await fetch('/data/baptiste_final.yaml');
const contenu = await response.text();
return btoa(contenu); // Encodage en Base64 comme hash simplifié
} catch (error) {
console.error("Erreur lors de la récupération du contenu du fichier :", error);
return null;
}
}
async function analyserModifications() {
try {
const response = await fetch('/data/baptiste_final.yaml');
const data = await response.json();
// Vérifier les cartes ajoutées dans `liste_carte_defaut`
if (Array.isArray(data.liste_carte_defaut)) {
data.liste_carte_defaut.forEach((carte) => {
if (carte.donné === "non" && !document.querySelector(`[data-numero="${carte.numero}"]`)) {
creerCarte(document.getElementById('zone_cartes'), carte.image, carte.numero);
}
});
}
// Vérifier les cartes ajoutées dans `liste_carte_échangé`
if (Array.isArray(data.liste_carte_échangé)) {
data.liste_carte_échangé.forEach((carte) => {
if (carte.recupéré === "oui" && !document.querySelector(`[data-numero="${carte.numero}"]`)) {
creerCarte(document.getElementById('zone_cartes'), carte.image, carte.numero);
}
});
}
} catch (error) {
console.error("Erreur lors de l'analyse des modifications :", error);
}
}
async function surveillerModifications() {
try {
const nouveauHash = await obtenirHashFichier();
if (dernierHash && nouveauHash !== dernierHash) {
console.log("Fichier modifié. Analyse des modifications...");
analyserModifications(); // Vérifie les changements dans le fichier
}
dernierHash = nouveauHash;
} catch (error) {
console.error("Erreur lors de la surveillance des modifications :", error);
}
}
async function chargerCartes() { async function chargerCartes() {
try { try {
const response = await fetch('/data/baptiste_final.yaml'); const response = await fetch('/data/baptiste_final.yaml');
@@ -10,7 +63,7 @@ async function chargerCartes() {
if (Array.isArray(data.liste_carte_defaut)) { if (Array.isArray(data.liste_carte_defaut)) {
data.liste_carte_defaut.forEach((carte) => { data.liste_carte_defaut.forEach((carte) => {
if (carte.donné === "non") { if (carte.donné === "non") {
creerCarte(zoneCartes, carte.image); creerCarte(zoneCartes, carte.image, carte.numero);
} }
}); });
} }
@@ -37,10 +90,15 @@ async function chargerCartes() {
} }
// Fonction pour créer une carte // Fonction pour créer une carte
function creerCarte(zone, image) { function creerCarte(zone, image, numero) {
const carte = document.createElement('div'); const carte = document.createElement('div');
carte.className = 'carte'; carte.className = 'carte';
carte.style.backgroundImage = `url(${image})`; carte.style.backgroundImage = `url(${image})`;
if (numero !== undefined) {
carte.dataset.numero = numero; // Ajoute l'attribut data-numero uniquement si numero est défini
} else {
console.error("Le numéro de la carte est undefined.");
}
positionAleatoire(zone, carte); // Positionner aléatoirement dans la partie haute positionAleatoire(zone, carte); // Positionner aléatoirement dans la partie haute
rendreDeplacable(carte); // Rendre la carte déplaçable rendreDeplacable(carte); // Rendre la carte déplaçable
@@ -263,3 +321,7 @@ function aimanterCarte(carte, rond) {
} }
// Charger les cartes au démarrage // Charger les cartes au démarrage
document.addEventListener('DOMContentLoaded', chargerCartes); document.addEventListener('DOMContentLoaded', chargerCartes);
document.addEventListener('DOMContentLoaded', async () => {
dernierHash = await obtenirHashFichier(); // Initialisation du hash
setInterval(surveillerModifications, 2000); // Surveiller les modifications toutes les 2 secondes
});