Menu et frames

Signaler
Messages postés
27
Date d'inscription
vendredi 31 décembre 2004
Statut
Membre
Dernière intervention
29 novembre 2010
-
Messages postés
27
Date d'inscription
vendredi 31 décembre 2004
Statut
Membre
Dernière intervention
29 novembre 2010
-
J'ai trouvé un code source pour créer un menu. Il est bien et convient à mes besoin. Le seul problème est que j'utilise des frames et je veux que les éléments du menu soient visibles dans la frame du bas et non pas cachés.

7 réponses

Messages postés
27
Date d'inscription
vendredi 31 décembre 2004
Statut
Membre
Dernière intervention
29 novembre 2010

En fait, le code je l'ai trouvé à cette adresse:
 http://www.cybwarrior.com
code de la page contenant le menu


<script language="JavaScript">
var IE=navigator.appName=='Microsoft Internet Explorer';
var NS=navigator.appName=='Netscape';
var Panels=new Array();
var Layers=new Array();
var Menus=new Array();


function Menu(caption, left, top, width, heigh){
 this.Index=Menus.length;
 Menus[this.Index]=this;
 this.Layer=new Layer('<table border=0 cellpadding=1 height=' + heigh + ' cellspacing=1 width=' + width + '>----, [' + url + ' ----, <table border=0 cellpadding=0 cellspacing=1>----
';
  for(var i=0; i < this.Items.length; i++)tag+=']&nbsp;' + this.Items[i][0] + '
';
  tag+='
</td></tr></table></td></tr></table>';
  this.Layer=new Layer(tag, this.left, this.top);
  this.Layer.Hide();
  for(var i=0; i < this.Panels.length; i++)this.Panels[i].Build();
 }
 
 this.Show=function(){
  for(var i=0; i < Panels.length; i++)Panels[i].Hide();
  if(this.parent!=undefined){
   this.Layer.Move(this.parent.Layer.Left() + this.parent.Layer.Width(), this.parent.Layer.Top() + (this.Layer.Height() / this.Items.length) * this.Item);
   this.parent.Show();
  }
  this.Layer.Show();
  this.visible=this.Layer.visible;
 }
 
 this.Hide=function(){
  this.Layer.Hide();
  for(var i=0; i < this.Panels.length; i++)this.Panels[i].Hide();
  this.visible=this.Layer.visible;
 }
}


function Layer(tag, left, top){
 this.Index=Layers.length;
 Layers[this.Index]=this;
 this.visible=true;
 this.Show=function(){
  if(IE)this.Object.style.visibility='visible';
  else if(NS)this.Object.visibility='show';
  this.visible=true;
 }
 this.Hide=function(){
  if(IE)this.Object.style.visibility='hidden';
  else if(NS)this.Object.visibility='hide';
  this.visible=false;
 }
 this.Width=function(){
  if(IE)return this.Object.offsetWidth;
  else if(NS)return this.Object.clip.width;
 }
 this.Height=function(){
  if(IE)return this.Object.offsetHeight;
  else if(NS)return this.Object.clip.height;
 }
 this.Top=function(){
  if(IE)return parseInt(this.Object.style.top);
  else if(NS)return this.Object.top;
 }
 this.Left=function(){
  if(IE)return parseInt(this.Object.style.left);
  else if(NS)return this.Object.left;
 }
 this.Move=function(left, top){
  if(IE){
  this.Object.style.left=left;
  this.Object.style.top=top;
  }
  else if(NS){this.Object.left=left;this.Object.top=top;}
 }
 if(IE){
  document.write('
' + tag + '
');
  this.Object=document.all['lay' + this.Index];
 }
 else if(NS){
  document.write('<layer id=lay' + this.Index + ' left=' + left + ' top=' + top + '>' + tag + '</layer>');
  this.Object=document.layers['lay' + this.Index];
 }
}
</script>
<html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<head>
<title>Menu</title>
<SCRIPT language="Javascript" src="../../common/js/print.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript" src="../../common/js/menu.js"></SCRIPT>
<style type=text/css>
A.MnuCaption{font-family:"Times New Roman", Times, serif;text-decoration:blink;color:#FFFFFF;font-size:12pt; text-align:center;}
A.MnuCaption:HOVER{border-style:none;border-width:0px;}
A.MnuItem{font-family:"Times New Roman", Times, serif;text-decoration:blink;color:black;font-size:12pt; text-align:center;}
A.MnuItem:HOVER{background-color:darkblue;color:white;}
body {
 margin-left: 0px;
 margin-top: 0px;
 margin-right: 0px;
 margin-bottom: 0px;
}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>



<%
PositionLeft=0 
PositionTop=0
%>
<script language=JavaScript>
var Menu3=new Menu('Menu', " <%=PositionLeft%> ", " <%=PositionTop %>", 80, 35);
Menu3.Panel.AddItem('Page2','page2.asp');
Menu3.Panel.AddItem('Page3','page3.asp');
Menu3.Panel.AddItem('Page4','page4.asp');
Menu3.Panel.AddItem('Page5','page5.asp');
Menu3.Build();
</script>


  ----

  &nbsp;,
 


  ----

  &nbsp;,
 




</html>
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
B

onsoir...

Apparament il ne te convient pas tant que cela!!!!

Ai je bien compris ????

Tu devrais avoir un fichier index.htm qui doit ressembler à cela
<HTML>
<HEAD>
<TITLE>..</TITLE>
<FRAMESET ...>
  <FRAME SRC=" menu.htm" NAME="HAUT" ...>



  <FRAME NAME="CENTRE" ...>




  <FRAME SRC="sousmenu.htm" NAME="BAS" ...>
</FRAMESET>
</HEAD>
</HTML>

A suivre....










;0)
Messages postés
27
Date d'inscription
vendredi 31 décembre 2004
Statut
Membre
Dernière intervention
29 novembre 2010

J'ai déjà une page index de cette forme :



<HTML>
<HEAD>
<TITLE>..</TITLE>
<FRAMESET ...>
  <FRAME SRC=" menu.htm" NAME="HAUT" ...>


  <FRAME NAME="CENTRE" ...>


</FRAMESET>
</HEAD>
</HTML>

mais le problème est que le menu est limité par l'auteur de la frame de Haut. Je voulais savoir s'il y avait quelque chose à faire pour rediriger l'affichage des sous menus vers la frame du centre à partir de celle du haut.

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

onjour...

Dans l'absolu le contenu d'une frame ne peut déborder sur une autre frame, SAUF pour un <SELECT>...

Une solution de secours peut être l'utilisation d'une avec un chargement de la page dans cette IFRAME avec une fonction du type...
//-----------------------
function LoadFichier( url_){
  var Obj = document.getElementById('CENTRE');
  Obj.src = url_;
}



;0)
Messages postés
27
Date d'inscription
vendredi 31 décembre 2004
Statut
Membre
Dernière intervention
29 novembre 2010

Cette idée me plait beacoup. Merci de l'avoir suggérer. Pouvez vous m'endire plus.
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
Allez plus loin implique que je jetes un oeil au code...




Triste constat en vérité...
  non compatible FireFox NetScape pas top Opéra...
  de plus pas très simple à mettre à niveau...



Je te proposes dans un premier temps de choisir un menu plus simple du type ce celui ci par exemple qui d'une mise en oeuvre simple...





Je suis persuadé qu'il doit y en avoir d'excellent sur ce site d'ailleurs...





A suivre donc...



;0)
Messages postés
27
Date d'inscription
vendredi 31 décembre 2004
Statut
Membre
Dernière intervention
29 novembre 2010

Resalut,
Pour le menu que tu m'as proposé, je l'ai déja vu mais le code que j'ai integré etait un exemple car dans le site, le menu se charge dynamiquement de la base de données et il est multi-niveau. J'ai pas trouvé de menu multi-niveau autre que ça.
Pour mon problème, j'ai suivi tes indication et j'ai créer un page index qui fait appel au menu et contient un iframe où se charge le cotenu.
Merci de m'avoir aider pour résoudre mon problème.