Explication de code

[Résolu]
Signaler
Messages postés
150
Date d'inscription
mardi 20 juillet 2004
Statut
Membre
Dernière intervention
22 octobre 2008
-
Messages postés
150
Date d'inscription
mardi 20 juillet 2004
Statut
Membre
Dernière intervention
22 octobre 2008
-
Salut à tous !
J'ai trouvé ce code sur Internet mais celà ne m'intéresse pas de le recopier sans le comprendre alors je cherche quelqu'un qui pourrait m'aider à en saisir le sens (ligne par ligne ).
D'avance merci.

document.write('<style type="text/css">');
document.write('.popper { POSITION: absolute; VISIBILITY: hidden; z-index:15; left:99px ')
document.write('#topgauche { position:absolute; z-index:10; }')
document.write('A:hover.ejsmenu {color:#33CC00; text-decoration:none;}')
document.write('.ejsmenu {color:#33CC00; text-decoration:none;}')
document.write('</style>')
document.write('

');

12 réponses

Messages postés
1250
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
30 septembre 2007
1
mwé, ben moi rien ne s'affiche et je ne sait pas pourquoi ?

pour la fonction kill() apparement elle n'est jamais appelé donc elle ne sert non plus à rien !!!

bref, plus je regarde ce script, plus je trouve qu'il est mal codé


ce genre de menu n'est pas si compliqué à faire !

je te file un bout de code que j'utilise sur mon site, ce n'est pas un menu mais c'est equivalent



var nbmenu = 16;

var largeur_menu = 195;

var top_menu = 2;



/* délai avant disparition du sous-menu. */

var delai = 1000; // en milliseconde



var timeout; //ne pas toucher, c'est pour déclarer la variable

var agt = navigator.userAgent.toLowerCase();

var isMac = (agt.indexOf('mac') != -1);

var isOpera = (agt.indexOf("opera") != -1);

var IEver = parseInt(agt.substring(agt.indexOf('msie ') + 5));

var isIE = ((agt.indexOf('msie')!=-1 && !isOpera && (agt.indexOf('webtv')==-1)) && !isMac);

var isIE5win (isIE && IEver 5);

var isIE5mac = ((agt.indexOf("msie") != -1) && isMac);

var blnOk=true;



// onScroll pour Internet Explorer, le position:fixed fait ce boulot pour les autres navigateurs

// qui respectent les normes CSS...

function MontrerMenu(strMenu) {

if(blnOk) {

AnnulerCacher();

CacherMenus();

if (document.getElementById(strMenu))//undefined

with (document.getElementById(strMenu).style)

visibility="visible";

}

SelectVisible("hidden",document.getElementsByTagName('select'));

}

function CacherDelai() {

if (blnOk) {

timeout = setTimeout('CacherMenus()',delai);

}

}

function AnnulerCacher() {

if (blnOk && timeout) {

clearTimeout(timeout);

}

}

function CacherMenus() {

if(blnOk) {

for(i=1;i<=nbmenu;i++) {

if (document.getElementById("ssmenu"+i))//undefined

with(document.getElementById("ssmenu"+i).style)

visibility="hidden";

}

}

SelectVisible("visible",document.getElementsByTagName('select'));

}

function SelectVisible(v,elem) {

if (blnOk && (isIE||isIE5win))

for (var i=0;i<elem.length;i++) elem[i].style.visibility=v;

}



ensuite, tu doit créer ton code html !

dans la zone ou tu va pour afficher le sous menu

onfocus="MontrerMenu('ssmenu1');"

onfocus="MontrerMenu('ssmenu2');"

etc.......

et par exemple ta zone de sousmenu à afficher



<li>toto

</li>





<li>toto

</li>



tu définit les position des sousmenu



les sousmenu disparaisse au bout d'un certains temps d'inactivité ou quand un autre menu est selectionner



voila

avec ça tu devrait pouvoir faire un beau menu


Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
Messages postés
1250
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
30 septembre 2007
1
salut,

ben comme ça, sans rien à coté, il sert à rien ce code



le document.write() en javascript permet tout simplement d'écrire du code html

donc ici, c'est l'equivalent de :

<style type="text/css">
.popper { POSITION: absolute; VISIBILITY: hidden; z-index:15; left:99px
#topgauche { position:absolute; z-index:10; }
A:hover.ejsmenu {color:#33CC00; text-decoration:none;}
.ejsmenu {color:#33CC00; text-decoration:none;}
</style>

en gros c'est du code basique, du css et un peu de html

là ou ca peut etre interessant c'est quand tu met une variable au milieu de chaine de caractere



voila

@+

Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
Messages postés
150
Date d'inscription
mardi 20 juillet 2004
Statut
Membre
Dernière intervention
22 octobre 2008

Le code complet concerne un menu en fait. C'est un menu déroulant dynamique qui affiche des sous menus quand on passe la souris sur les items du menu principal.
Le code complet est le suivant:

<script language="javascript">
bgcolor='#00FF00';
bgcolor2='#CC0000';
document.write('<style type="text/css">');
document.write('.popper { POSITION: absolute; VISIBILITY: hidden; z-index:15; left:99px ')
document.write('#topgauche { position:absolute; z-index:10; }')
document.write('A:hover.ejsmenu {color:#33CC00; text-decoration:none;}')
document.write('.ejsmenu {color:#33CC00; text-decoration:none;}')
document.write('</style>')
document.write('

');



/*
LIENS
*/
zlien = new Array;
zlien[0] = new Array;
zlien[1] = new Array;
zlien[2] = new Array;
zlien[0][0] = '[lien1bis.htm lien1bis]';
zlien[0][1] = '[lien1bis2.htm lien1bis2]';
zlien[0][2] = '[lien1bis3.htm lien1bis3]';
zlien[1][0] = '[lien2bis.htm lien2bis]';
zlien[1][1] = '[lien2bis2.htm lien2bis2]';
zlien[2][0] = '[lien3bis.htm lien3bis]';
if(document.getElementById)
{
skn = document.getElementById("topdeck").style
skn.left = 99;
}


function pop(msg,pos)
{
skn.visibility = "hidden";
a=true
skn.top = pos;
var content ="<TABLE WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=1>";
pass = 0
while (pass < msg.length)
{
content += "----, &nbsp;&nbsp;\"+msg[pass]+\"</TD>\";
pass++;
}
content += "
</TD></TR></TABLE>";
document.getElementById("topdeck").innerHTML = content;
skn.visibility = "visible";
}
function kill()
{
if(document.getElementById)
skn.visibility = "hidden";
}
document.onclick = kill;
if(document.getElementById)
{
document.write('
<TABLE CELLPADING=0 CELLSPACING=1 BORDER=0 WIDTH=100% HEIGHT=60>')
document.write('----, lien1</TD>')
document.write('----
lien 2, ')
document.write('----
lien 3, ')
document.write('
</TD></TR></TABLE>
')
}
document.write('
');
</script>

Certaines choses sont simples mais d'autres me semblent assez compliquées à comprendre (pour moi !).
Donc . . . si qqn a le temps de m'aider, ce n'est pas de refus !
Merci.
Messages postés
1250
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
30 septembre 2007
1
ben dit moi ce que tu ne comprend pas !

je verrai si je peut t'aider

Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
Messages postés
150
Date d'inscription
mardi 20 juillet 2004
Statut
Membre
Dernière intervention
22 octobre 2008

Zlien, ce sont différents tableaux qui regroupent les liens finaux (les items des sous menus). Ca c'est OK.
La fonction kill doit cacher les sous menus quand on ne passe dessus.
Pour le reste, comme je n'y connais pas grand chose en javascript . . .
Si ça te saoule, ce n'est pas grave, je comprendrais tres bien !
Merci quand meme.
Messages postés
1250
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
30 septembre 2007
1
nan ca me saoule pas t'inquiete

si je répond, c'est que je veut bien


par contre je viens de tester le script et il ne m'affiche rien

je pense que chez toi ca affiche quelque chose mais bon....

tu l'a trouvé ou ?

Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
Messages postés
150
Date d'inscription
mardi 20 juillet 2004
Statut
Membre
Dernière intervention
22 octobre 2008

Sur www.editeurjavascript.com .Il me semble que je l'ai fait par édition automatique (d'où mon incompréhension !).
Normalement il doit bien t'afficher un menu (vert fluo) . . .
Messages postés
150
Date d'inscription
mardi 20 juillet 2004
Statut
Membre
Dernière intervention
22 octobre 2008

Merci bcp !
Messages postés
1250
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
30 septembre 2007
1
y a pas de quoi

si tu a des questions, n'hésite pas, contact moi
@+

Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
Messages postés
150
Date d'inscription
mardi 20 juillet 2004
Statut
Membre
Dernière intervention
22 octobre 2008

Une autre question, si vraiment je n'abuse pas de ton temps: comment on inclut le menu dans une page pour qu'il soit toujours visible même quand le contenu de la page change ?
Pour être plus clair, par exemple sur ce site: le menu en haut à gauche ressemble à celui que je voudrais. Lorsque les sous menus apparaissent, ils empiètent sur le contenu de la page (les infos au milieu) mais lorsque l'on charge un nouveau contenu, le menu est toujours là. Tu sais comment faire ça ?
D'avance merci et merci encore pour ton aide depuis le début.
Messages postés
1250
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
30 septembre 2007
1
ben pour ça, tu a plusieurs solutions !



soit tu utilise les frames, tu a 2 frames, une a gauche pour ton menu
et le contenu de tes differentes pages sur la frame de droite

perso, je te conseil pas trop l'utilisation de frame



deuxieme solution : tu recopie ton menu sur toutes tes pages,

c'est trés chiant quand meme mais bon



et enfin, la mieux d'aprés moi

il faut utiliser un langage serveur pour ca

tu met le code de ton menu dans un fichier séparé et tu appel ce fichier

en php, ca te fait par exemple

require 'menu.php'; et tu a ton code dans menu.php

en asp je ne sais pas, désolé



voila, tu a le choix a toi de voir

Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
Messages postés
150
Date d'inscription
mardi 20 juillet 2004
Statut
Membre
Dernière intervention
22 octobre 2008

Je ne parviens pas à faire fonctionner le include mais je suis sur la bonne voie pour réaliser ce que je voulais.
Merci encore.