@mathieu1004
Merci pour tes remarques
Tu as parfaitement compris le problème: TOUT, absolument TOUT est fait en JS, ce qui explique ces phénomènes.
La raison est pratique, et je ne peux pas y faire grand chose, le propriétaire du site ne connaît que quelque bases de HTML, ce qui est déjà très bien pour un médecin retraité expert en égyptologie. J'ai mis un peu de PHP, mais c'est très limité.
C'était déjà le cas de la version ancienne du site, les utilisateurs y sont habitués depuis 2001, personne ne s'en plaint, même si je suis parfaitement d'accord pour dire que ce serait mieux si le site, comme tous les autres que je gère, était fait en PHP.
Affichage des images de titre:
les images de titre ne sont pas dans la page, elles sont ajoutées au moment du chargement, et comme les infos qui permettent sa génération sont dans des fichiers de données, il faut être sûr que ces fichiers sont bien chargés pour assurer l'affichage, ce qui fait que ça ne se produit que sur "onload". Bien entendu, si c'était un site que je maitrise, tout cela serait fait beaucoup plus rapidement en php à la génération de la page, mais avec une génération en js, je n'ai pas beaucoup de choix.
Mais peut être quelqu'un aura-t-il une solution géniale à me proposer pour contourner ce problème?
En ce qui concerne le temps que mettent les
"pages d'index" à s'afficher:
c'est exactement le même genre de problème.
Comme je ne peux pas mettre les fichiers en PHP, j'ai une solution en deux étapes:
au moment du chargement, un script génère l'ajout dans la balise <head> de la page de
<script type="text/javascript" src="/make-lists.php?page=adresse-de-la page"></script>
lequel va rechercher les informations up to date concernant les éléments de la liste, pour générer des objets javascript, lesquels sont interprétés pour générer la liste de "tuiles" au chargement de la page.
Dans un premier temps, ça affichait la page en deux fois. J'ai donc mis un
body{display:none";}
qui fait que la page ne s'affiche pas du tout, et quand le script est terminé j'ai mis
document.body.style.display = 'block';
qui affiche la page complètement générée.
Comme pour le point précédent, je suis preneur d'une solution qui ne m'oblige pas à remplacer les pages .htm par des pages .php
Problème de menu déroulant:
mathieu1004 a écrit :
- Je met la souris sur Tombes, la liste des tombes apparait en dessous.
- Je clique sur Tombes, la liste des tombes disparait.
- Si je sors la souris de l'endroit ou il y a écrit Tombes, la liste des tombes réapparait :
+Si je passe la souris dans la liste des Tombes , la liste clignote beaucoup
+Si je remet la souris sur Tombes, la liste des tombes disparait de nouveau
+Si je reclique sur Tombes le bug disparait
+Si je passe sur les 3 petites lignes à droite de Newsletters, le bug disparait
Tout est une histoire de "responsiveness":
Voici le code de "tombes"
<li class="menuEntry withsub" onclick="showHide(this);" onmouseover="showHide(this);" onmouseout="showHide(this);">Tombes
<ul class="submenu">
..................
</ul>
</li>
Le "onclick" est là pour les tablettes, les "onmouse..." pour les souris.
Si on clique une fois, ça affiche la liste de façon permanente, si on reclique dessus ça la cache.
En faisant "mouseover", tu as affiché la liste de temporaire, mais comme ensuite tu as fait un clic alors que la liste était active, ça a fait comme si on était sur un mobile, ça a caché la liste.
En y réfléchissant, je vais remplacer le "onclick" par "ontouchend", ça serait plus approprié.
J'ai fait ça tout au début et je n'y ai plus pensé, je ne connaissais rien du tout aux "touch events"
(en fait je n'en sais pas beaucoup plus aujourd'hui, sauf l'existence de "ontouchend)
Voilà au moins un point que je vais pourvoir améliorer.