diff options
| author | polo <ordipolo@gmx.fr> | 2025-07-18 15:57:57 +0200 |
|---|---|---|
| committer | polo <ordipolo@gmx.fr> | 2025-07-18 15:57:57 +0200 |
| commit | b55a029a5b4867349a172873d20a6ffd91c20e23 (patch) | |
| tree | 724b89251f8efbedbe6e06411546fab01e948d53 /public/js | |
| parent | 27d88f0b226a0bb8e07f0bea83f47a9bc4bbff32 (diff) | |
| download | cms-b55a029a5b4867349a172873d20a6ffd91c20e23.tar.gz cms-b55a029a5b4867349a172873d20a6ffd91c20e23.tar.bz2 cms-b55a029a5b4867349a172873d20a6ffd91c20e23.zip | |
petites améliorations smartphones, logo et fond de header et footer gérés dans NodeData
Diffstat (limited to 'public/js')
| -rw-r--r-- | public/js/main.js | 65 |
1 files changed, 38 insertions, 27 deletions
diff --git a/public/js/main.js b/public/js/main.js index 6eb0162..2ffd33b 100644 --- a/public/js/main.js +++ b/public/js/main.js | |||
| @@ -8,33 +8,6 @@ function newPassword(page, id = ''){ | |||
| 8 | }, 0); | 8 | }, 0); |
| 9 | } | 9 | } |
| 10 | 10 | ||
| 11 | // ouvrir/fermer les sous-menus avec écran tactile | ||
| 12 | document.addEventListener('DOMContentLoaded', () => { // sinon on ne trouve pas les boutons | ||
| 13 | document.querySelectorAll('.sub-menu-toggle').forEach(button => { | ||
| 14 | button.addEventListener('click', e => { | ||
| 15 | e.preventDefault(); | ||
| 16 | const li = button.parentElement; // <li class="drop-down"> | ||
| 17 | |||
| 18 | // fermer les autres sous-menus de même niveau | ||
| 19 | // :scope pour pouvoir utiliser > pour restreindre aux frères directs | ||
| 20 | li.parentElement.querySelectorAll(':scope > .drop-down, :scope > .drop-right').forEach(sibling => { | ||
| 21 | if(sibling !== li){ | ||
| 22 | sibling.classList.remove('open'); // fermer sous-menus frères | ||
| 23 | sibling.querySelectorAll('.drop-right').forEach(desc => { | ||
| 24 | desc.classList.remove('open'); // fermer sous-menus neveux | ||
| 25 | }); | ||
| 26 | } | ||
| 27 | }); | ||
| 28 | |||
| 29 | if(!li.classList.toggle('open')){ // fermer sous-menu | ||
| 30 | li.querySelectorAll('.drop-right').forEach(desc => { | ||
| 31 | desc.classList.remove('open'); // fermer sous-menus enfants | ||
| 32 | }); | ||
| 33 | } | ||
| 34 | }); | ||
| 35 | }); | ||
| 36 | }); | ||
| 37 | |||
| 38 | function copyInClipBoard(link){ | 11 | function copyInClipBoard(link){ |
| 39 | // une balise <input> avec des attributs | 12 | // une balise <input> avec des attributs |
| 40 | var element = document.createElement("input"); | 13 | var element = document.createElement("input"); |
| @@ -64,6 +37,44 @@ function toastNotify(message) { | |||
| 64 | } | 37 | } |
| 65 | 38 | ||
| 66 | 39 | ||
| 40 | document.addEventListener('DOMContentLoaded', () => { // pour pouvoir attraper les balises | ||
| 41 | // ouvrir/fermer les sous-menus avec écran tactile | ||
| 42 | document.querySelectorAll('.sub-menu-toggle').forEach(button => { | ||
| 43 | button.addEventListener('click', e => { | ||
| 44 | e.preventDefault(); | ||
| 45 | const li = button.parentElement; // <li class="drop-down"> | ||
| 46 | |||
| 47 | // fermer les autres sous-menus de même niveau | ||
| 48 | // :scope pour pouvoir utiliser > pour restreindre aux frères directs | ||
| 49 | li.parentElement.querySelectorAll(':scope > .drop-down, :scope > .drop-right').forEach(sibling => { | ||
| 50 | if(sibling !== li){ | ||
| 51 | sibling.classList.remove('open'); // fermer sous-menus frères | ||
| 52 | sibling.querySelectorAll('.drop-right').forEach(desc => { | ||
| 53 | desc.classList.remove('open'); // fermer sous-menus neveux | ||
| 54 | }); | ||
| 55 | } | ||
| 56 | }); | ||
| 57 | |||
| 58 | if(!li.classList.toggle('open')){ // fermer sous-menu | ||
| 59 | li.querySelectorAll('.drop-right').forEach(desc => { | ||
| 60 | desc.classList.remove('open'); // fermer sous-menus enfants | ||
| 61 | }); | ||
| 62 | } | ||
| 63 | }); | ||
| 64 | }); | ||
| 65 | |||
| 66 | // hauteur de <nav> en fonction de celle du menu en position fixe | ||
| 67 | const nav = document.querySelector('nav'); | ||
| 68 | const nav_zone = document.getElementById('nav_zone'); | ||
| 69 | const resize_observer = new ResizeObserver(entries => { | ||
| 70 | for(const entry of entries){ | ||
| 71 | nav_zone.style.height = entry.contentRect.height + 'px'; | ||
| 72 | } | ||
| 73 | }); | ||
| 74 | resize_observer.observe(nav); | ||
| 75 | }); | ||
| 76 | |||
| 77 | |||
| 67 | // complète les fonctions dans tinymce.js | 78 | // complète les fonctions dans tinymce.js |
| 68 | function switchPositions(article_id, direction) | 79 | function switchPositions(article_id, direction) |
| 69 | { | 80 | { |
