menu déroulant [XHTML/CSS/JS] - HTML/CSS - Programmation
Marsh Posté le 23-11-2004 à 15:00:03
ma solution pour contourner ce problème :
fusionner les 2 menus et les imbirqués (il serait plus logique à lire, et on s'approcherait des standards du web)
Code :
|
y'a plus qu'a modifier le css et fonction.
pour la dynamique du menu, on pourrait de passer de javascript grace au li:hover, mais IE ne l'entend pas de cette oreille.
Marsh Posté le 23-11-2004 à 15:18:07
effectivement c'est plus logique, mais, mmhhh, ca va être le bonheur à modifier tout ça
bon, je vais déjà essayer avec ça ce que je peux faire, merci
pour la dynamique, là je vais essayer de positionner correctement les éléments, la dynamique on verra plus tard
Marsh Posté le 23-11-2004 à 16:04:15
bon, j'ai modifié avec le code donné au-dessus, j'ai réussi à le remettre d'applomb sur mozilla, mais IE c'est encore pire, je vois même plus les sous-menus :
basic.css
Code :
|
index.php - partie menu
Code :
|
merci !
Edit : si il y en a qui sauraient aussi comment mettre du noir à droite des principaux éléments du menu sous mozilla, comme ça le fait sous IE, ça peut m'aider.
merci
Marsh Posté le 24-11-2004 à 10:32:32
En attendant d'avoir une réponse, j'ai commencé à intégrer le javascript, et là, ça marche sous IE
bon, tant mieux. Mais j'ai toujours un petit problème.
J'ai mis un timeout sur mon code JS sur le onmouseout des liens du menu principal, pour cacher le sous-menu après 3 secondes si la souris quitte le menu. Le problème, c'est que une fois sur deux, et même 3 fois sur 4, le sous-menu se recache un peu n'importe quand. Voilà mon code :
menu.php
Code :
|
menus.js
Code :
|
menus.css
Code :
|
j'ai essayé de mettre un timer par menu, en me disant que mon code s'embrouillait dans les timouts et en déclenchait un au milieu de l'arrêt de l'autre ou je ne sais quoi, mais ça me faisait pareil.
et puis j'ai toujours un bout de fond gris à droite du menu principal sous mozilla, alors qu'il devrait être noir
Merci !
Marsh Posté le 25-11-2004 à 12:24:46
tu vas sur le site d'alsacréation où il y a déjà des menus tout faits et super simples en style css qui fonctionnent très bien sur firefox et ie...
pkoi réinventer la roue à tout prix ??
Marsh Posté le 25-11-2004 à 13:03:01
titione a écrit : tu vas sur le site d'alsacréation où il y a déjà des menus tout faits et super simples en style css qui fonctionnent très bien sur firefox et ie... |
Pour comprendre comment ça marche, faire des progrès et ensuite être capable de faire des nouveaux trucs ?
Marsh Posté le 25-11-2004 à 13:03:03
cosmoschtroumpf a écrit : pourquoi toujours utiliser le travail des autres ? |
pourquoi ne pas t'en inspirer pour savoir comment faire ca proprement, de manière standard et en conservant une compatibilité correcte trans-navigateurs?
Marsh Posté le 25-11-2004 à 13:11:56
Attention masklinn, s'inspirer d'un travail est très différent de l'utiliser. titione me proposait d'utiliser les menus d'alascréation. J'ai dit que je n'allais pas les utiliser, mais m'en insipirer, certainement.
Et puis, ce n'est pas parce que je ne regarde pas le travail des autres que je ne sais pas faire ça "proprement, de manière standard et en conservant une compatibilité correcte trans-navigateurs". Plutôt que de sous-entendre que mon menu n'est pas propre, pas standard et pas compatible, dis-moi ce qui ne va pas, plutôt que de me dire "Va voir chez les autres, et surtout n'essaye pas d'en faire plus". Si je n'essaye jamais par moi-même, quelle sorte de programmeur suis-je ? (à part "un mauvais"...)
Marsh Posté le 25-11-2004 à 13:12:07
franchement là c un bout de code de 15 lignes avec 50 lignes de css... donc effectivement c facile à comprendre et facilement customisable à souhait !
après si tu ne veux pas utiliser le travail des autres, ben t'as plus qu'à devenir ermite sur ton île déserte ) c le seul moyen de rencontrer personne et de ne pas utiliser le travail des autres...
Marsh Posté le 25-11-2004 à 13:15:06
argh ! mais pourquoi absolument utiliser l'existant ? Je veux pas copier, je veux créer !
J'ai pas dit que je ne jetterais pas un oeil sur le menu, d'ailleurs j'avais déjà regardé bien des codes de menus déroulants avant de me lancer, mais par pitié, épargnez-moi les "prends ce code et tais-toi" !
ma question n'était pas "où trouver un code de menu déroulant sympa", mais "comment optimiser mon code qui est lui aussi facile à comprendre et customisable à souhait, et qui surtout, fait exactement ce que je veux" !
Marsh Posté le 25-11-2004 à 13:20:01
titione a écrit : franchement là c un bout de code de 15 lignes avec 50 lignes de css... donc effectivement c facile à comprendre et facilement customisable à souhait ! |
Je ne suis pas d'accord.
Que ce soit un script pour un bête rollover, un menu ou n'importe quoi d'autre, il FAUT le faire soi-même et comprendre toutes les subtilités. C'est la seule manière de progresser.
Et puis, ce n'est pas une perte de temps, vu qu'en suite, on réutilise SES PROPRES scripts en connaissant parfaitement les qualités et les défauts ainsi que les possibilités d'adaptation.
Marsh Posté le 25-11-2004 à 14:55:24
Note qu'il serait intéréssant que tu fasse une "factorisation" de ton code javascript.
Il y a un article intéréssant à ce propos sur pompage.net:
http://www.pompage.net/pompe/separation/
Marsh Posté le 25-11-2004 à 16:36:06
Ayuget a écrit : Note qu'il serait intéréssant que tu fasse une "factorisation" de ton code javascript. |
excellent article que je bookmarque sur le champ.
Marsh Posté le 25-11-2004 à 16:46:40
j'ai une question sur cet article, puisque je ne trouve pas le mail du gars : quand je fais window.onload = initMenu(); ça me fait des tas d'erreurs, et quand je fais window.onload = initMenus;, ça marche, alors que je m'attendrais plutôt à l'inverse
Marsh Posté le 25-11-2004 à 17:10:53
Ce n'est pas ça le problème, c'est que dans mon initMenus() après, dans le premier cas il me dit "document.getElementById('ssMenu' + i) has no properties", et dans le second cas ça marche
Edit : ok j'ai trouvé sur un autre site : si on met les parenthèses il l'exécute direct, alors que si on n'en met pas, il attend la fin du chargement avant de l'exécuter...
Marsh Posté le 26-11-2004 à 09:51:38
bien bien bien
nouveau problème.
j'ai utilisé l'article de pompage.net, et voilà donc mon nouveau code :
menu.php
<ul id="menus"> |
menus.js
/* Définition des variables globales */ |
Et comme je suis un mec bien lourd, je vous met même mon css :
basic.css
/**************************************** |
et voilà le résultat sous Firefox :
sous IE ca ne me fait pas le décalage entre les menus et le texte
et dans tous les cas, les menus ne s'affichent pas
si vous pouviez m'aider...
merci !
Marsh Posté le 26-11-2004 à 16:29:03
bon, ça ne s'arange pas.
Mes menus ne s'affichent toujours pas. Enfin, si, sous IE ils s'affichent, mais pas sous Firefox . Du coup en fait ça s'arrange un peu.
mon nouveau code JS, qui s'est transformé en JS/PHP pour générer des fonctions... enfin, j'ai l'impression de me compliquer la vie pour rien...
menus.js.php
Code :
|
pourquoi ça marche sous IE mais pas sous mozilla ?
Marsh Posté le 23-11-2004 à 14:13:44
bonjour
je développe un site, et j'ai envie d'y coller des menus déroulants.
Comme j'aime bien développer seul, j'aime bien ne pas prendre des codes tout faits sur le net. Donc je me suis attelé à la tâche, et la première difficulté apparaît.
Voilà le site tel qu'il devrai apparaître (plus ou moins, y'a un bout de bleu/gris à droite du menu principal qui devrait etre noir, mais c'est secondaire) :
donc ça c'est sous firefox, ça marche.
Voilà le site tel qu'il apparaît sous IE :
comme vous le voyez, c'est pas tout à fait ça
voici donc le code concerné :
index.php
et maintenant (ta-daaaa) le fichier css :
basic.css
Si vous avez une solution pour que l'image du haut reste centrée, et que les sous-menus restent dans la fenêtre, vous auriez toute mon affection
Merci !
Message édité par cosmoschtroumpf le 26-11-2004 à 16:22:19