OVH Cloud OVH Cloud

bug introuvable

8 réponses
Avatar
boris
Bonjour,
j'ai repris un modèle de dreamweaver que je trouvais sympa, avec des
menus et sous menus. Il y a 7 menus à l'origine. Ce que je ne
comprends pas, c'est que je n'arrive pas du tout à adapter ce script
pour 8 menus et que d'autre part, il marche plus ou moins
aléatoirement (je suis sous mac, test avec safari, explorer et
netscape)
est-ce qu'il y a un code plus simple, débuggé ? je ne susi aps du
tout spécialiste de javascript, désolé. Merci d'avance, donc si vous
avez une idée ou une autre proposition

<script type="text/javascript">
<!--
var time = 3000;
var numofitems = 7;

//menu constructor
function menu(allitems,thisitem,startstate){
callname= "gl"+thisitem;
divname="subglobal"+thisitem;
this.numberofmenuitems =7;
this.caller = document.getElementById(callname);
this.thediv = document.getElementById(divname);
this.thediv.style.visibility = startstate;
}

//menu methods
function ehandler(event,theobj){
for (var i=1; i<= theobj.numberofmenuitems; i++){
var shutdiv =eval( "menuitem"+i+".thediv");
shutdiv.style.visibility="hidden";
}
theobj.thediv.style.visibility="visible";
}

function closesubnav(event){
/if ((event.clientY <48)||(event.clientY > 107)){
for (var i=1; i<= numofitems; i++){
var shutdiv =eval('menuitem'+i+'.thediv');
shutdiv.style.visibility='hidden';
}
}
}
// -->
</script>
</head>
<body onmousemove="closesubnav(event);">

// et puis en dessous dans mon code j'ai des trucs pour les menus
comme
<a href="index.php" id="gl8" class="glink"
onmouseover="ehandler(event,menuitem8);">Accueil</a>
<a href="quisuisje.php" id="gl1" class="glink"
onmouseover="ehandler(event,menuitem1);">Qui suis-je ?</a>
<a href="cvfr.php" id="gl2" class="glink"
onmouseover="ehandler(event,menuitem2);">CV</a>

etc...

//et enfin pour les sous-menus comme
<div id="subglobal1" class="subglobalNav">
<a href="#">subglobal1 link</a> | <a href="#">subglobal1 link</a>
</div>

Boris

8 réponses

Avatar
BMR
Bonjour,
j'ai repris un modèle de dreamweaver que je trouvais sympa, avec des
menus et sous menus. Il y a 7 menus à l'origine. Ce que je ne
comprends pas, c'est que je n'arrive pas du tout à adapter ce script
pour 8 menus et que d'autre part, il marche plus ou moins
aléatoirement (je suis sous mac, test avec safari, explorer et
netscape)
est-ce qu'il y a un code plus simple, débuggé ? je ne susi aps du
tout spécialiste de javascript, désolé. Merci d'avance, donc si vous
avez une idée ou une autre proposition

<script type="text/javascript">
<!--
var time = 3000;
var numofitems = 7;

//menu constructor
function menu(allitems,thisitem,startstate){
callname= "gl"+thisitem;
divname="subglobal"+thisitem;
this.numberofmenuitems =7;
this.caller = document.getElementById(callname);
this.thediv = document.getElementById(divname);
this.thediv.style.visibility = startstate;
}

//menu methods
function ehandler(event,theobj){
for (var i=1; i<= theobj.numberofmenuitems; i++){
var shutdiv =eval( "menuitem"+i+".thediv");
shutdiv.style.visibility="hidden";
}
theobj.thediv.style.visibility="visible";
}

function closesubnav(event){
/if ((event.clientY <48)||(event.clientY > 107)){
for (var i=1; i<= numofitems; i++){
var shutdiv =eval('menuitem'+i+'.thediv');
shutdiv.style.visibility='hidden';
}
}
}
// -->
</script>
</head>
<body onmousemove="closesubnav(event);">

// et puis en dessous dans mon code j'ai des trucs pour les menus
comme
<a href="index.php" id="gl8" class="glink"
onmouseover="ehandler(event,menuitem8);">Accueil</a>
<a href="quisuisje.php" id="gl1" class="glink"
onmouseover="ehandler(event,menuitem1);">Qui suis-je ?</a>
<a href="cvfr.php" id="gl2" class="glink"
onmouseover="ehandler(event,menuitem2);">CV</a>

etc...

//et enfin pour les sous-menus comme
<div id="subglobal1" class="subglobalNav">
<a href="#">subglobal1 link</a> | <a href="#">subglobal1 link</a>
</div>

Boris


Comme menu déroulant, il n'y a pas plus simple que celui-ci :
http://www.ibilab.net/webdev/articles/CSS/creer-menus-cascade-simple-4.htm.
Je l'utilise couramment. Avec Firefox, il n'y a besoin d'aucun
Javascript. Avec IE, le script fait dans les 40 lignes. Mais je ne sais
pas ce que ça donne sur Safari : ce serait intéressant de savoir.

BMR

Avatar
Boris
BMR wrote:

Bonjour,
j'ai repris un modèle de dreamweaver que je trouvais sympa, avec des
menus et sous menus. Il y a 7 menus à l'origine. Ce que je ne
comprends pas, c'est que je n'arrive pas du tout à adapter ce script
pour 8 menus et que d'autre part, il marche plus ou moins
aléatoirement (je suis sous mac, test avec safari, explorer et
netscape)
est-ce qu'il y a un code plus simple, débuggé ? je ne susi aps du
[snip]


Boris



Comme menu déroulant, il n'y a pas plus simple que celui-ci :
http://www.ibilab.net/webdev/articles/CSS/creer-menus-cascade-simple-4.htm.
Je l'utilise couramment. Avec Firefox, il n'y a besoin d'aucun
Javascript. Avec IE, le script fait dans les 40 lignes. Mais je ne sais
pas ce que ça donne sur Safari : ce serait intéressant de savoir.

BMR


je ne trouve pas que 40 lignes soit beaucoup plus court que ce que j'ai
(qui est un menu horizontal en plus)
ce que je ne comprends vraiment pas, c'est comment l'adapter pour un
nombre différent de menus, quel paramètre changer ?

--
Boris
http://www.pi314.net


Avatar
cléo
//menu constructor
function menu(allitems,thisitem,startstate){
callname= "gl"+thisitem;
divname="subglobal"+thisitem;
this.numberofmenuitems =7;
this.caller = document.getElementById(callname);
this.thediv = document.getElementById(divname);
this.thediv.style.visibility = startstate;
}


Salut,
Le code ci-dessus définit le constructeur d'un object menu ...
Par contre, nulle part dans ton code ne figure l'instruction "new menu(...,
.. ,...)".
Tu n'as pas dû tout voler du code original ;)

--
Cléo

Avatar
Boris
cléo wrote:

//menu constructor
function menu(allitems,thisitem,startstate){
callname= "gl"+thisitem;
divname="subglobal"+thisitem;
this.numberofmenuitems =7;
this.caller = document.getElementById(callname);
this.thediv = document.getElementById(divname);
this.thediv.style.visibility = startstate;
}



Salut,
Le code ci-dessus définit le constructeur d'un object menu ...
Par contre, nulle part dans ton code ne figure l'instruction "new menu(...,
.. ,...)".
Tu n'as pas dû tout voler du code original ;)



figures-toi que c'est exactement ce que je me suis demandé !!
mais pas de doute possible non seulement le code actuel marche pour un
menu à 7 éléments, mais en plus c'est la page du modèle dreamweaver
design css, donc ça ne peut que marcher.
l'appel à la fonction menu peut-elle se faire dans un fichier css ?

--
Boris
http://www.pi314.net


Avatar
Olivier Miakinen

Comme menu déroulant, il n'y a pas plus simple que celui-ci :
http://www.ibilab.net/webdev/articles/CSS/creer-menus-cascade-simple-4.htm.
Je l'utilise couramment. Avec Firefox, il n'y a besoin d'aucun
Javascript. Avec IE, le script fait dans les 40 lignes. [...]


je ne trouve pas que 40 lignes soit beaucoup plus court que ce que j'ai
(qui est un menu horizontal en plus)


Non, mais d'une part il fonctionne avec des navigateurs modernes, même
sans JavaScript, et d'autre part il fonctionnera sans modification quel
que soit le nombre de menus et de sous-menus.

ce que je ne comprends vraiment pas, c'est comment l'adapter pour un
nombre différent de menus, quel paramètre changer ?


Cf. supra.

--
Olivier Miakinen
Non, monsieur le juge, je vous le jure : jamais je n'ai cité
Bruxelles dans ma signature.


Avatar
Boris
Olivier Miakinen wrote:


Comme menu déroulant, il n'y a pas plus simple que celui-ci :
http://www.ibilab.net/webdev/articles/CSS/creer-menus-cascade-simple-4.htm.
Je l'utilise couramment. Avec Firefox, il n'y a besoin d'aucun
Javascript. Avec IE, le script fait dans les 40 lignes. [...]


je ne trouve pas que 40 lignes soit beaucoup plus court que ce que j'ai
(qui est un menu horizontal en plus)



Non, mais d'une part il fonctionne avec des navigateurs modernes, même
sans JavaScript, et d'autre part il fonctionnera sans modification quel
que soit le nombre de menus et de sous-menus.
[snip]

peut-on l'adapter pour un menu horizontal ?
--
Boris
http://www.pi314.net



Avatar
tintin6971
Bonjour,

Je suis peut-être à coté de la plaque, mais deux fois tu as des variables à
7 (var numofitems = 7 - this.numberofmenuitems = 7) as tu essayer de les
passer à 8 ?


"bobopi" a écrit dans le message de news:

Bonjour,
j'ai repris un modèle de dreamweaver que je trouvais sympa, avec des
menus et sous menus. Il y a 7 menus à l'origine. Ce que je ne
comprends pas, c'est que je n'arrive pas du tout à adapter ce script
pour 8 menus et que d'autre part, il marche plus ou moins
aléatoirement (je suis sous mac, test avec safari, explorer et
netscape)
est-ce qu'il y a un code plus simple, débuggé ? je ne susi aps du
tout spécialiste de javascript, désolé. Merci d'avance, donc si vous
avez une idée ou une autre proposition

<script type="text/javascript">
<!--
var time = 3000;
var numofitems = 7;

//menu constructor
function menu(allitems,thisitem,startstate){
callname= "gl"+thisitem;
divname="subglobal"+thisitem;
this.numberofmenuitems =7;
this.caller = document.getElementById(callname);
this.thediv = document.getElementById(divname);
this.thediv.style.visibility = startstate;
}

//menu methods
function ehandler(event,theobj){
for (var i=1; i<= theobj.numberofmenuitems; i++){
var shutdiv =eval( "menuitem"+i+".thediv");
shutdiv.style.visibility="hidden";
}
theobj.thediv.style.visibility="visible";
}

function closesubnav(event){
/if ((event.clientY <48)||(event.clientY > 107)){
for (var i=1; i<= numofitems; i++){
var shutdiv =eval('menuitem'+i+'.thediv');
shutdiv.style.visibility='hidden';
}
}
}
// -->
</script>
</head>
<body onmousemove="closesubnav(event);">

// et puis en dessous dans mon code j'ai des trucs pour les menus
comme
<a href="index.php" id="gl8" class="glink"
onmouseover="ehandler(event,menuitem8);">Accueil</a>
<a href="quisuisje.php" id="gl1" class="glink"
onmouseover="ehandler(event,menuitem1);">Qui suis-je ?</a>
<a href="cvfr.php" id="gl2" class="glink"
onmouseover="ehandler(event,menuitem2);">CV</a>

etc...

//et enfin pour les sous-menus comme
<div id="subglobal1" class="subglobalNav">
<a href="#">subglobal1 link</a> | <a href="#">subglobal1 link</a>
</div>

Boris


Avatar
Boris
tintin6971 wrote:

Bonjour,

Je suis peut-être à coté de la plaque, mais deux fois tu as des variables à
7 (var numofitems = 7 - this.numberofmenuitems = 7) as tu essayer de les
passer à 8 ?
c'est bien ça mon problème c'est que ça ne marche pas et qu'il faut sans

doute comprendre un peu plus finement ce que fait ce programme
Boris


"bobopi" a écrit dans le message de news:


Bonjour,
j'ai repris un modèle de dreamweaver que je trouvais sympa, avec des
menus et sous menus. Il y a 7 menus à l'origine. Ce que je ne
comprends pas, c'est que je n'arrive pas du tout à adapter ce script
pour 8 menus et que d'autre part, il marche plus ou moins
aléatoirement (je suis sous mac, test avec safari, explorer et
netscape)
est-ce qu'il y a un code plus simple, débuggé ? je ne susi aps du
tout spécialiste de javascript, désolé. Merci d'avance, donc si vous
avez une idée ou une autre proposition

<script type="text/javascript">
<!--
var time = 3000;
var numofitems = 7;

//menu constructor
function menu(allitems,thisitem,startstate){
callname= "gl"+thisitem;
divname="subglobal"+thisitem;
this.numberofmenuitems =7;
this.caller = document.getElementById(callname);
this.thediv = document.getElementById(divname);
this.thediv.style.visibility = startstate;
}

//menu methods
function ehandler(event,theobj){
for (var i=1; i<= theobj.numberofmenuitems; i++){
var shutdiv =eval( "menuitem"+i+".thediv");
shutdiv.style.visibility="hidden";
}
theobj.thediv.style.visibility="visible";
}

function closesubnav(event){
/if ((event.clientY <48)||(event.clientY > 107)){
for (var i=1; i<= numofitems; i++){
var shutdiv =eval('menuitem'+i+'.thediv');
shutdiv.style.visibility='hidden';
}
}
}
// -->
</script>
</head>
<body onmousemove="closesubnav(event);">

// et puis en dessous dans mon code j'ai des trucs pour les menus
comme
<a href="index.php" id="gl8" class="glink"
onmouseover="ehandler(event,menuitem8);">Accueil</a>
<a href="quisuisje.php" id="gl1" class="glink"
onmouseover="ehandler(event,menuitem1);">Qui suis-je ?</a>
<a href="cvfr.php" id="gl2" class="glink"
onmouseover="ehandler(event,menuitem2);">CV</a>

etc...

//et enfin pour les sous-menus comme
<div id="subglobal1" class="subglobalNav">
<a href="#">subglobal1 link</a> | <a href="#">subglobal1 link</a>
</div>

Boris






--
Boris
http://www.pi314.net