| HTML |
|---|
<div class="faq-portal-container">
<aside class="faq-sidebar-menu">
<h2 class="faq-menu-title">Catégories (5)</h2>
<ul class="faq-nav-list" id="faq-menu">
<li><a href="#pane1" class="faq-link active" onclick="showPane(event, 'pane1')">Mon terminal</a></li>
<li><a href="#pane2" class="faq-link" onclick="showPane(event, 'pane2')">Mon espace client</a></li>
<li><a href="#pane3" class="faq-link" onclick="showPane(event, 'pane3')">Ma télécollecte</a></li>
</ul>
</aside>
<main class="faq-content-panes">
<section id="pane1" class="faq-pane active">
<h3 class="md-sub-title">Mon terminal</h3>
<div class="md-faq"><div class="md-item"><div class="md-question">Comment commander un terminal ?</div><div class="md-answer"><span class="liensCommande-texte"></span></div></div></div>
</section>
<section id="pane2" class="faq-pane">
<h3 class="md-sub-title">Mon espace client</h3>
<div class="md-faq"><div class="md-item"><div class="md-question">Où trouver mes identifiants ?</div><div class="md-answer"><span class="dashboardLien-texte"></span></div></div></div>
</section>
<section id="pane3" class="faq-pane">
<h3 class="md-sub-title">Ma télécollecte</h3>
<div class="md-faq"><div class="md-item"><div class="md-question">Délai de paiement ?</div><div class="md-answer"><span class="telecollecte2-texte"></span></div></div></div>
</section>
</main>
</div> |
| HTML |
|---|
<style>
.faq-link {
display: block;
padding: 15px;
text-decoration: none;
color: #000;
border-radius: 10px;
cursor: pointer;
min-height: 44px; /* Taille recommandée par Apple pour les zones tactiles */
-webkit-tap-highlight-color: transparent;
transition: background 0.3s ease;
}
.faq-link.active { background: #3474FF !important; color: #fff !important; }
/* Correction pour mobile : quand on clique, on veut voir la section */
@media (max-width: 768px) {
.faq-pane { scroll-margin-top: 20px; } /* Ajoute un espace en haut lors du scroll */
}
</style> |
| HTML |
|---|
<script> function showPane(edocument.addEventListener('DOMContentLoaded', idfunction() { // On écoute les clics sur tout le conteneur du menu e.preventDefault();const menuContainer = document.getElementById('faq-menu'); if (menuContainer) { menuContainer.addEventListener('click', function(e) { // 1. On nettoie tout le menu proprement On cherche si l'élément cliqué est un lien .faq-link const liensclickedLink = documente.target.querySelectorAllclosest('.faq-link'); if (clickedLink) { e.preventDefault(); // 1. Nettoyage de TOUS les liens document.querySelectorAll('.faq-link').forEach(function(l) => { l.classList.remove('active'); l.style.backgroundColor = ''; // On force la réinitialisation removeProperty('background-color'); l.style.removeProperty('color = ''); }); // 2. Activation Ondu applique l'état actif sur le lien cliqué lien cliqué const clickedElement = e.currentTarget; clickedElementclickedLink.classList.add('active'); // 3. Application forcée du style via JS (pour contourner Confluence) clickedElement clickedLink.style.setProperty('background-color', '#3474FF', 'important'); clickedElement clickedLink.style.setProperty('color', '#FFFFFF', 'important'); // 43. Gestion des panneaux const tousLesPanneauxtargetId = documentclickedLink.querySelectorAllgetAttribute('.faq-pane'href').substring(1); tousLesPanneaux.forEach(function(p) { document.querySelectorAll('.faq-pane').forEach(p => p.classList.remove('active')); }); // 5. Affichage et Scroll const targetPane = document.getElementById(idtargetId); if (targetPane) { targetPane.classList.add('active'); // Scroll fluide vers la section targetPane.scrollIntoView({ behavior: 'smooth', block: 'start' }); } } }); } }); </script> |