Upload files to "projets"

This commit is contained in:
Lou 2025-09-17 11:49:31 +00:00
parent db76a36e8f
commit fede59f534

57
projets/script.js Normal file
View file

@ -0,0 +1,57 @@
document.addEventListener('DOMContentLoaded', function() {
const tabs = document.querySelectorAll('.tab');
const panels = document.querySelectorAll('.tab-panel');
const searchBar = document.querySelector('.search-bar');
// Fonction pour retirer le surlignage de tous les items d'un panel
function clearHighlights(panel) {
panel.querySelectorAll('.checklist li').forEach(li => {
li.classList.remove('highlight');
});
}
// Gestion des onglets
tabs.forEach((tab, idx) => {
tab.addEventListener('click', function() {
tabs.forEach(t => t.classList.remove('active'));
this.classList.add('active');
panels.forEach((panel, pIdx) => {
if (idx === pIdx) {
panel.classList.add('active');
clearHighlights(panel);
} else {
panel.classList.remove('active');
}
});
// Réinitialise la recherche lors du changement d'onglet
searchBar.value = '';
});
});
// Recherche avec surlignage et switch automatique d'onglet si besoin
searchBar.addEventListener('input', function() {
const query = this.value.toLowerCase();
let foundInCurrent = false;
let foundInOther = -1;
panels.forEach((panel, idx) => {
let found = false;
panel.querySelectorAll('.checklist li').forEach(li => {
const text = li.textContent.toLowerCase();
if (query && text.includes(query)) {
li.classList.add('highlight');
found = true;
} else {
li.classList.remove('highlight');
}
});
if (found && panel.classList.contains('active')) foundInCurrent = true;
if (found && !panel.classList.contains('active') && foundInOther === -1) foundInOther = idx;
});
// Si pas trouvé dans l'onglet actif mais trouvé ailleurs, switch d'onglet
if (!foundInCurrent && foundInOther !== -1) {
tabs[foundInOther].click();
}
});
});