Problème menu

Signaler
Messages postés
159
Date d'inscription
dimanche 17 juillet 2011
Statut
Membre
Dernière intervention
28 janvier 2020
-
Messages postés
159
Date d'inscription
dimanche 17 juillet 2011
Statut
Membre
Dernière intervention
28 janvier 2020
-
Bonjour,

Je suis en train de créer une webradio :
L'URL temporaire : http://balistiq.free.fr/test2/ruskof.htm
Dans le menu de gauche, il y a 3 boutons tests : (presentations, culture et chateauroux).
Quand on place le curseur de la souris sur l'une de ces 3 rubriques, vous remarquerez qu'un sous-menu apparaît en bas de la page ; cependant, en ce qui concerne le sous menu de la rubrique "culture", je souhaite faire apparaître une sous-sous rubriques en haute de la page.
Mon code est partagé entre 2 fichiers dont voici le détail:

RUSKOF.HTM

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0036)http://www.nork.ru/main/posters.html -->
<HTML><HEAD>
<TITLE>.:NEUE OPERATIVE RADIKALE KUNST:. - Posters</TITLE>
<META http-equiv=Content-Type content="text/html; charset=windows-1251">
<META content="Official Homepage of NORK - Neue Operative Radikale Kunst"
name=description>
<META
content="NORK, Neue Operative Radikale Kunst, ???????????? ???????, ????????? ????????????, Hyperfascism, ?????? ???????????, ?????? ? ?????, 418, ??? ????????????, Abysslooker, Para Bellum, Dr. Dunkelstein, Meister Schwarzsichtig, Aguirre, ???????j? ?????, ??????? ?????, ????? ?????, ?. ?. ????????, ?. ????????, ??? ????????, ???????? ???????, ???????? ????????, Ragnar Redbeard, Might is Right, ?????? ???????, ???? ???? ?????, ?????? ??????? ????????, ??????? ??????, ????????????, ????? ??????, ???????? ??????, ???? ????? ????, ?????? ??????, ??????????, ????????????, ????????, Blackdeath, Cthulhu Biomechanical, Hungry AK-47 Productions, ??????????, sociopathy, ?????? ??????"
name=keywords>
<META http-equiv=Content-Script-Type content=text/javascript>
<SCRIPT language=javascript src="files/menu.js"
type=text/javascript></SCRIPT>
<STYLE>A:link {
    COLOR: #b40801; TEXT-DECORATION: none
}
A:visited {
    COLOR: #b40801; TEXT-DECORATION: none
}
A:active {
    COLOR: #b40801; TEXT-DECORATION: none
}
P {
    FONT-SIZE: 10pt; COLOR: #c0c0c0; FONT-FAMILY: "Arial"; TEXT-ALIGN: justify
}
H3 {
    COLOR: #b40801; FONT-FAMILY: "Arial"; TEXT-ALIGN: center
}
H6 {
    FONT-SIZE: 10pt; COLOR: #b40801; FONT-FAMILY: "Arial"
}
I {
    FONT-SIZE: 8pt
}
BODY {
    SCROLLBAR-FACE-COLOR: #313131; SCROLLBAR-HIGHLIGHT-COLOR: #313131; SCROLLBAR-SHADOW-COLOR: #000000; SCROLLBAR-3DLIGHT-COLOR: #000000; SCROLLBAR-ARROW-COLOR: #b40801; SCROLLBAR-TRACK-COLOR: #313131; SCROLLBAR-DARKSHADOW-COLOR: #313131
}
</STYLE>
<META content="MSHTML 6.00.2900.2912" name=GENERATOR>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>
</HEAD>

  ----

           

          [#
      ]
      [#

      </map>
   
 

      <map name=mChateauroux>
      ]
      [#
      ]

      </map>
     
 

      <map name=mCulture>
      [#
      ]
      [#
      ]

      </map>
     
</CENTER>

</HTML>

MENU.JS

// Javascript

var ie = 0;
var ns = 0;
var moz = 0;
var manif = document;
var chateauroux = document;
var culture = document;
var med = document;
var art = document;
var build = document;
var phil = document;

if (document.all) {
  ie = 1;
} else if (document.layers) {
  ns = 1;
} else if (document.getElementById) {
  moz = 1;
}

function init() {
    if (ns) {
        manif = document.divManif;
        chateauroux = document.divChateauroux;
        culture = document.divCulture;

    } else if (moz) {
        manif = document.getElementById("divManif").style;
        chateauroux = document.getElementById("divChateauroux").style;
        culture = document.getElementById("divCulture").style;

    } else if (ie) {
        manif = divManif.style;
        chateauroux = divChateauroux.style;
        culture = divCulture.style;

    }
    manif.imgx = 335;
    manif.imgy = 42;
    chateauroux.imgx = 335;
    chateauroux.imgy = 42;
    culture.imgx = 335;
    culture.imgy = 42;

    initlayer(manif);
    initlayer(chateauroux);
    initlayer(culture);

}

function show(item) {
    if (ns) item.visibility = "show";
    else item.visibility = "visible";
}

function hide(item) {
    if (ns) item.visibility = "hide";
    else item.visibility = "hidden";
}

function moveTo(obj,x,y) {
    obj.xpos = x;
    obj.left = obj.xpos;
    obj.ypos = y;
    obj.top = obj.ypos;
}

function moveBy(obj,x,y) {
    obj.xpos += x;
    obj.left = obj.xpos;
    obj.ypos += y;
    obj.top = obj.ypos;
}

function showpos(obj) {
    alert(obj.xpos + ', ' + obj.ypos);
}

function initlayer(obj) {
    this.obj = obj;
    clipTo(obj,obj.imgy,obj.imgx,obj.imgy,0);
    obj.xpos = parseInt(obj.left);
    obj.ypos = parseInt(obj.top);
    moveBy(obj,0,-obj.imgy);
}

function clipValues(obj,which) {
    if (ns) {
        if (which=="t") return obj.clip.top;
        if (which=="r") return obj.clip.right;
        if (which=="b") return obj.clip.bottom;
        if (which=="l") return obj.clip.left;
    } else {
        var clipv = obj.clip.split("rect(")[1].split(")")[0].split("px");
        if (which=="t") return Number(clipv[0]);
        if (which=="r") return Number(clipv[1]);
        if (which=="b") return Number(clipv[2]);
        if (which=="l") return Number(clipv[3]);
    }
}

function clipTo(obj,t,r,b,l) {
    if (ns) {
        obj.clip.top = t;
        obj.clip.right = r;
        obj.clip.bottom = b;
        obj.clip.left = l;
    } else {
        obj.clip = "rect("+t+"px "+r+"px "+b+"px "+l+"px)";
    }
}

function clipBy(obj,t,r,b,l) {
    if (ns) {
        obj.clip.top = clipValues(obj,'t') + t
        obj.clip.right = clipValues(obj,'r') + r
        obj.clip.bottom = clipValues(obj,'b') + b
        obj.clip.left = clipValues(obj,'l') + l
    } else {
        obj.clip = "rect("+(this.clipValues(obj,'t')+t)+"px "+(this.clipValues(obj,'r')+r)+"px "+Number(this.clipValues(obj,'b')+b)+"px "+Number(this.clipValues(obj,'l')+l)+"px)"
    }
}

function overlink(obj) {
    if (obj.closetimeoutid) {
        clearTimeout(obj.closetimeoutid);                // Keep this shit from closing on the user.
        obj.closetimeoutid = 0;
    }
    obj.olink = 1;
    this.obj = obj;
    if (obj.linktimeoutid) {
        clearTimeout(obj.linktimeoutid);
        obj.linktimeoutid = 0;
    }
    obj.linktimeoutid = setTimeout("checklink(this.obj)",6000);
}

function outlink(obj) {
    obj.olink = 0;
}

function checklink(obj) {
//    alert('checklink: ' + obj.olink);
    if (obj.olink) {
        this.obj = obj;
        obj.linktimeoutid = setTimeout("checklink(this.obj)",6000);        // Event loop, essentially.
        return;
    }
    laClose(obj);
}

function closeall() {
    if (manif.open) quickclose(manif);
    if (chateauroux.open) quickclose(chateauroux);
    if (culture.open) quickclose(culture);

}

function lOpen(obj) {
    if (obj.fullopen) {
        clearTimeout(obj.closetimeoutid);
        obj.closetimeoutid = 0;
        obj.over = 1;
        return;
    }
   
    if (manif.open) quickclose(manif);
    if (chateauroux.open) quickclose(chateauroux);
    if (culture.open) quickclose(culture);

   
    obj.over = 1;
    laOpen(obj);
}

function quickclose(obj) {
    var val = clipValues(obj,'b')-clipValues(obj,'t');
    clipBy(obj,val,0,0,0);
    moveBy(obj,0,-val);
    obj.open = 0;
    obj.fullopen = 0;
    hide(obj);
}

function lClose(obj) {
    obj.over = 0;
    if (obj.fullopen) {
        this.obj = obj;
        obj.closetimeoutid = setTimeout("laClose(this.obj)",6000);
    } else {
        laClose(obj);
    }
}

function laOpen(obj) {
    if (obj.over) {
        if (clipValues(obj,'t') > 0) {
            show(obj);
            obj.open = 1;
            if (clipValues(obj,'t') > 15) {
                clipBy(obj,-15,0,0,0);
                moveBy(obj,0,15);
//                obj.fullopen = 1;
            } else {
                var val = clipValues(obj,'t');
                clipBy(obj,-val,0,0,0);
                moveBy(obj,0,val);
                obj.fullopen = 1;
            }
            this.obj = obj;
            setTimeout("laOpen(this.obj)",15);
        }
    }
}

function laClose(obj) {
    if (!obj.over) {
        if (clipValues(obj,'t') < obj.imgy) {
            if ((clipValues(obj,'b')-clipValues(obj,'t')) > 20) {
                clipBy(obj,20,0,0,0);
                moveBy(obj,0,-20);
                obj.fullopen = 0;
                obj.linktimeoutid = 0;
                obj.closetimeoutid = 0;
            } else {
                var val = clipValues(obj,'b')-clipValues(obj,'t');
                clipBy(obj,val,0,0,0);
                moveBy(obj,0,-val);
            }
            this.obj = obj;
            setTimeout("laClose(this.obj)",15);
        } else {
            obj.open = 0;
            obj.linktimeoutid = 0;
            obj.closetimeoutid = 0;
            hide(obj);
        }
    }
}

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

// Done

J'ajoute que j'ai utilisé un script tout fait donc, il y a des incohérences notemment dans les mots clés.

Que dois-je modifier ?

Merci

32 réponses

Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
16
B
onjour

ton DIV Culture s'affiche la ou tu l'as placé, à savoir en LEFT:723 et TOP:726 donc si tu veux le voir apparaître en haut il te suffit modifier ces valeurs



<divid= divCulture
style="Z-INDEX: 1000; LEFT: 723px ;
VISIBILITY: hidden; WIDTH: 350; POSITION: absolute; TOP: 726px; HEIGHT:
42px">
  <map name =mCulture>
  [#
  ]
  [#
  ]</div>
   </map>











juste au passage fermes ta MAP dans le DIV et non après c'est plus clean !...

;0)
Messages postés
159
Date d'inscription
dimanche 17 juillet 2011
Statut
Membre
Dernière intervention
28 janvier 2020

C'est pas tout à fait ce que je demandais, mais c'est pas grave, je vais reformuler autrement :

1 - tu passe le curseur de la souris sur le bouton culture
2 - Ca affiche un sous-menu en bas de l'écran
3 - Je souhaiterai savoir comment ajouter un sous-sous menu quans je passe le curseur sur l'une des propositions du sous-menu culture.

                                                       Choix1     Choix2     Choix3
                                                                       |
                                                                       |
CULTURE                                                     |
         |                                                             |
         |                                                             |
         |                                                             |
         |                                                             |
         |                                                             |
         |____________________________Theatre     Cinéma      Musique     Expos

Je suis pas toujours très doué pour me faire comprendre mais bon, s'il y a besoin d'éclaircicement, faut pas hésiter.
En tout cas, merci.
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
16
Il est vrai que ce n'est ce que j'avais compris mais cette fois il me semble que je suis sorti de ma léthargie...
Donc


...tout d'abord il te faut créer un
et les autres de la même manière que



divCulture...>

par exemple :



id= divTheatre ...>

 
  <map name =mTheatre>
  [#
...etc...

  ]


??????


) onMouseOut = outlink(


??????


) shape = RECT coords= 254,12,319,34 href="#">
  </map>










BON c'est fait....on continu........





de la même manière que tu as...





Layer1" style ="position:absolute; width:161px; height:426px; z-index:1001; left: 0px; top: 190px;">
 

  [#
 
  ]

// celui la manque dans ta source

qui lorsque tu MouseOver et MouseOut affiche ou cache le


divCulture...>

il faut modifier le



divCulture...> comme suit
...




id = divCulture ...>
 
  <map name =mCulture>
<strike>  [#
</strike>
  ]
onMouseOver"lOpen( theatre ) onMouseOutlClose(theatre)
shape=RECT coords=
10,8,84,39
href="#">



...etc...


  </map>





Bon il reste un truc à faire



dans le fichier MENU.JS, si je ne m'abuse
il te faut compléter la fonction
function init() {




...etc...




}

pour prendre en compte ces nouveaux DIV...

That's All Folks !! à priori....j'espère avoir été clair...




;0)
Messages postés
159
Date d'inscription
dimanche 17 juillet 2011
Statut
Membre
Dernière intervention
28 janvier 2020

J'ai essayé ce que tu m'a dis mais je m'en sort pas du tout, par contre, j'ai un autre code à te soumettre qui ne necessite pas de fichier.js et qui est beaucoup plus simple à mettre à jour :

<html>


<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR">
<meta name="Balistiq">
<title>Radio Balistiq</title>
<style type="text/css">
body {
scrollbar-track-color: #323B96;
scrollbar-face-color: #323B96;
scrollbar-highlight-color: #;
scrollbar-3d-light-color: #;
scrollbar-darkshadow-color: #;
scrollbar-shadow-color: #;
scrollbar-arrow-color: #DADDFC;
}
 #image_lien {
position:absolute;
top:767px;
left:650px;
}
</style>
<script language="JavaScript" type="text/javascript"><!--
function ChangeImageUrl(image,lien){
  document.getElementById('image_lien').src=image;
  document.getElementById('site').href=lien;
}
// --></script>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>
</head>




<map name="Map">
  
    [../../disk%20F/Pcom-11-05/CD.com%2007-05/softs/nfoviewer/setup.exe
    ]
    [../../disk%20F/Pcom-11-05/CD.com%2007-05/softs/nfoviewer/setup.exe
    ]
    [../../disk%20F/Pcom-11-05/CD.com%2007-05/softs/nfoviewer/setup.exe
    ]
    [../../disk%20F/Pcom-11-05/CD.com%2007-05/softs/nfoviewer/setup.exe
    ]
    [../../disk%20F/Pcom-11-05/CD.com%2007-05/softs/nfoviewer/setup.exe
    ]
    http://balistiq/test/setup.exe")'> id="site">

  
   
http://balistiq.free.fr/test/fond-index2.jpg"  width="1024" height="768" border="0" usemap="#Map">

   
</map>

Je voudrai faire la même chose, mais là, ça dépasse le cadre de mes compétences. En tout cas, j'aprécie ton aide.
Messages postés
159
Date d'inscription
dimanche 17 juillet 2011
Statut
Membre
Dernière intervention
28 janvier 2020

Personne peut m'aider ?
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
16
B

onjour...
Navré mais fin d'un long WeekEnd...

Qu'est ce qui ne fonctionne pas avec le précédent exemple....
dans tes <MAP> tu mets

[#
si tu ouvres un LIEN...

ou]onMouseOver"lOpen( ?????? ) onMouseOutlClose(??????) shape= RECT ....etc>
si tu ouvres un autre DIV contenant une image...

Tu peux bien évidement avoir les 2 dans une même MAP

le rajout dans la fonction init est sommaire

function init() {
    if (ns) {
        manif = document.divManif;
        chateauroux = document.divChateauroux;
        culture = document.divCulture;
          theatre = document.divTheatre;
    } else if (moz) {
        manif = document.getElementById("divManif").style;
        chateauroux = document.getElementById("divChateauroux").style;
        culture = document.getElementById("divCulture").style;
          theatre = document.getElementById("divTheatre").style;
    } else if (ie) {
        manif = divManif.style;
        chateauroux = divChateauroux.style;
        culture = divCulture.style;
         theatre = divTheatre.style;
    }
    manif.imgx = 335;
    manif.imgy = 42;
    chateauroux.imgx = 335;
    chateauroux.imgy = 42;
    culture.imgx = 335;
    culture.imgy = 42;
     theatre.imgx = ??;
     theatre.imgy = ??;

    initlayer(manif);
    initlayer(chateauroux);
    initlayer(culture);
    initlayer(theatre);
}

;0)
Messages postés
159
Date d'inscription
dimanche 17 juillet 2011
Statut
Membre
Dernière intervention
28 janvier 2020

J'ai dû merdouiller je ne sais quoi, il est vrai en js, la moindre erreur de syntaxe ne pardonne pas.
Par contre, j'aurai aimé avoir ton avis quant au second scrypt que j'ai indiqué plus haut.
Il a l'avantage d'être plus simple à mettre à jour si je dois modifier les boutons, ce qui de toute façon aura lieu.

Sinon, ton explication est assez claire, j'ai quand même fini par faire quelque chose mais c'est pas une cinécure.
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
16
nous revoila donc revenu au problème avec zone clickable

que ce soit l'un ou l'autre des scripts, le second étant à priori plus light, il te faut bien définir ce que tu veux quitte à faire des schémas, voire des dessins, pour bien comprendre et voir qu'a telle action correspond un résultat...

L'ébauche de celui que tu as fait un peu plus haut bien que simple vaut mieux que bien des discours donc mets sur papier les relations avant de t'attaquer au code...



;0)
Messages postés
159
Date d'inscription
dimanche 17 juillet 2011
Statut
Membre
Dernière intervention
28 janvier 2020

Bon, je vais donc faire un shéma :

La page de référence : http://balistiq.free.fr/test/index2.htm  

J'ai fais comme tu m'a demandé, j'espère que c'est bien plus clair, je peux pas faire mieux.
Messages postés
159
Date d'inscription
dimanche 17 juillet 2011
Statut
Membre
Dernière intervention
28 janvier 2020

le lien de limage de l'explication :
http://kanal3d.free.fr/explication.jpg
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
16
B


onjour

A priori rien de bien sorcier dans ton schéma...

Tu as en fait 3 types d'actions
  1. OnMouseOver -> Affiche un Calque 
  2. OnClick -> Affiche un Calque
  3. OnClick -> Charge un fichier

- Livre d'OR est une ACTION 1
- TEST est une ACTION 2
- TOTO est une ACTION 3

La <MAP> relative à l'ACTION 1 doit contenir un OnMouseOver= " Affiche_DIV ('Nom_DIV');"
La <MAP> relative à l'ACTION 2 doit contenir un OnClick ="Affiche_DIV('Nom_DIV');"
La <MAP> relative à l'ACTION 3 doit contenir un OnClick= " Charge_Fichier ('Nom_IFRAME', 'Nom_FICHIER');"

Tu vas me dire MAIS C'EST QUOI CES FONCTIONS ????????

//----------------------------------------------
// Affichage d'un DIV déclaré dans le document...
//----------------------------------------------
function Affiche_DIV( div_){
  var Obj = document.getElementById( div_);
  if( Obj){
    Obj.style.visibility = "hidden";
    //-- Ou autre méthode
    Obj.style.display = "nonne";
  }
}
//----------------------------------------------
// Masquage d'un DIV déclaré dans le document...
//----------------------------------------------

function Cache_DIV( div_){
  var Obj = document.getElementById( div_);
  if( Obj){
    Obj.style.visibility = "visible";
    //-- Ou autre méthode
    Obj.style.display = "";
  }
}
//--------------------------------------
// Changement de la SRC d'une IFRAME...
//--------------------------------------
function Charge_Fichier( where_, url_){
  var Obj = document.getElementById( where_);
  if( Obj){
    Obj.src = url_;
  }
}

Est ce tous ce qui précéde est Clair....



;0)
Messages postés
159
Date d'inscription
dimanche 17 juillet 2011
Statut
Membre
Dernière intervention
28 janvier 2020

C'est clair mais comme j'y comprends rien à rien au javascript et à n'importe quel langage en général, j'y perds mon latin en 10 secondes.
Je n'arrive pas à appliquer ce que tu dis dans mon code.
D'ailleurs, à bien y regarder mon code, je constate qu'il a des erreurs puisqu'il y a un bout de code en rouge avec dreamweaver. Et rien que ça, je n'arrive pas à comprendre pourquoi, pourtant toutes les balises sont fermées. Enfin bref, c'est la bérésina.

D'ordinaire quand je me lance à faire du code, c'est à partir d'un script tout fai mais là, c'est nouveau pour moi, je sais pas comment interpréter ce que tu dis et par conséquent, je ne sais pas quoi faire.
Je sais même pas comment j'ai réussi à en arriver là, car à l'origine, c'était un sript tout bête d'un système mouseover sur un menu.
Je vais refaire des essais mais je crois que je peux y passer 100 ans, à moins d'un miracle, je ne crois pas en un résultat convenable.

Tu vas dire que je suis d'une bêtise affligente mais je crois qu'un exemple concret à partir de mon code serait l'idéla afin que je comprenne bien.

Merci en tout cas.
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
16
Il ne faut jamais désespérer...

ci dessous une page HTML avec les exemples pour t'aider à comprendre...

c'est parti...

--  CUT HERE ----------------------------------
<HTML>
<HEAD>
<TITLE>TEST...............</TITLE>
<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript">
//----------------------------------------------
// Affichage d'un DIV déclaré dans le document...
//----------------------------------------------
function Affiche_DIV( div_){
  var Obj = document.getElementById( div_);
  if( Obj){
    Obj.style.visibility = "visible";
    //-- Ou autre méthode
    Obj.style.display = "";
  }
}
//----------------------------------------------
// Masquage d'un DIV déclaré dans le document...
//----------------------------------------------
function Cache_DIV( div_){
  var Obj = document.getElementById( div_);
  if( Obj){
    Obj.style.visibility = "hidden";
    //-- Ou autre méthode
    Obj.style.display = "none";
  }
}
//--------------------------------------
// Changement de la SRC d'une IFRAME...
//--------------------------------------
function Charge_Fichier( where_, url_){
  var Obj = document.getElementById( where_);
  //-- Pour Test --------------------------------  alert( "IFRAME " +where_ +"\nURL " +url_);
  //---------------------------------------------
  if( Obj){
    Obj.src = url_;
  }
}
</SCRIPT>
</HEAD>





[#
]
[#
]
[#
]
[#
]
[#
]
[#
</map>




<map name="M_CULTURE">
]
[#
]
</map>




<map name="M_THEATRE">
[#
]
[#
]
</map>





</HTML>

-- JUSQUE HERE --

Nota : je suis reparti de la base la plus simple...

au passage il y a plusieures con..ies dans les fonctions que j'ai écrite avant...ERREUR de frappe bien Sur !o(, c'est rectifié...



;0)
Messages postés
159
Date d'inscription
dimanche 17 juillet 2011
Statut
Membre
Dernière intervention
28 janvier 2020

Un grand merci à toi, j'essai ça mais là, tu vois, ça me parle déjà davantage, comme tu le dis toi-même : vaut mieux un bon dessin (ou une bonne démo) qu'un long discour.
Je te tiens au courant de la suite des évènements.
Messages postés
159
Date d'inscription
dimanche 17 juillet 2011
Statut
Membre
Dernière intervention
28 janvier 2020

Une autre question histoire de finioler, est-il possible de faire apparaître plusieurs DIV avec un seul lien ?

[#
Dans l'exemple ci-dessus, on peut visiblement faire apparaître le calque theatre mais si je voulais faire apparaître un calque musique et expos, comment puis-je les ajouter ?

J'ai complètement oublié de précisier ce détail hier.

Voilà un exmple plus parlant en image : ]http://kanal3d.free.fr/explication2.jpg

Merci
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
16
 
B

onjour

Aucun Problème il suffit de modifier les fonctions comme suit...



//----------------------------------------------
// Affichage d'un DIV déclaré dans le document...
//----------------------------------------------

function Affiche_DIV(){
  var Arg = arguments;  // Récup liste des arguments passée à la fonction
  var Obj;
  for( var i=0; i< Arg.length; i++){
              // On parcours la liste


    Obj = document.getElementById( Arg[i]); // Récup Objet correspondant
    if( Obj){
      Obj.style.visibility = "visible";
      //-- Ou autre méthode
      Obj.style.display = "";
    }
  }
}



...de la même manière pour Masquer...



//----------------------------------------------

// Masquage d'un DIV déclaré dans le document...

//----------------------------------------------


function Cache_DIV(){

  var Arg = arguments;  // Récup liste des arguments passée à la fonction

  var Obj;

  for( var i=0; i< Arg.length; i++){               // On parcours la liste

    Obj = document.getElementById( Arg[i]); // Récup Objet correspondant

    if( Obj){

      Obj.style.visibility = "hidden";

      //-- Ou autre méthode

      Obj.style.display = "none";

    }

  }

}

Avec un appel identique mais en mettant le nom des DIVs séparé par une virgule comme ci dessous



...cet appel affichera donc 3 DIVs



;0)
Messages postés
159
Date d'inscription
dimanche 17 juillet 2011
Statut
Membre
Dernière intervention
28 janvier 2020

C'est cool, ça fonctionne, t'es un chef.
Messages postés
159
Date d'inscription
dimanche 17 juillet 2011
Statut
Membre
Dernière intervention
28 janvier 2020

Juste une petite chose encore, j'ai réussi à me déaptouiller avec ton code mais voilà quand je passe le curseur de la souris sur la zone "présentation", il y a bien le menu qui apparaît en bas mais si je vais sur "la culture" par exemple, et bien, le menu de "présentaion" reste et du coup celui de "la culture" se met par dessus.

J'ai bien vu une ligne de code dans laquelle il y a ça :

Logiquement, le onMousOut n'est-il pas censer effacer le menu si le curseur de la souris va hors de la zone ? J'ai sans doute fais une ânerie mais j'avoue ne pas bien comprendre où.

Si t'as une idée là dessus...
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
16
Tout ce que tu écris est correct...ERREUR de syntaxe peut être...

Dans ton cas je pense que tu devrait oublier le OnMouseOut de tes liens, je m'explique...
comment atteindre un lien que tu viens d'afficher si l'événement déclencheur posséde un OnMouseOut qui l'efface ?

Une solution consiste a créer une une fonction Cache_ALL() que tu appelles en début de fonction 
Affiche_DIV()
exemple :
//-------------------
function Cache_ALL(){
  Cache_DIV('D_balistiq','D_yeswecancan','D_equipe'...etc..);// tu mets tout les DIVs Temporaires
}

et dans
//-------------------
function Affiche_DIV(){
  var Arg = arguments;
  var Obj;
  Cache_ALL();  // Appel pour tout masquer
...la Suite...
}

;0)
Messages postés
159
Date d'inscription
dimanche 17 juillet 2011
Statut
Membre
Dernière intervention
28 janvier 2020

Bon, j'ai essayé et voilà la portion de code que j'ai essayé en fonction de ce que tu a mentionné :

function Cache_ALL(){
  Cache_DIV('D_balistiq','D_yeswecancan','D_equipe'...etc..);// tu mets tout les DIVs Temporaires
}
function Affiche_DIV(){
  var Arg = arguments;  // Récup liste des arguments passée à la fonction
  var Obj;
  Cache_ALL();  // Appel pour tout masquer
  for( var i=0; i< Arg.length; i++){               // On parcours la liste
    Obj = document.getElementById( Arg[i]); // Récup Objet correspondant
    if( Obj){
      Obj.style.visibility = "visible";
      //-- Ou autre méthode
      Obj.style.display = "";
    }
  }
}

Ca cache bien les div a tel point qu'ils n'apparaissent carrément plus.