Menu et frames

sidommou Messages postés 27 Date d'inscription vendredi 31 décembre 2004 Statut Membre Dernière intervention 29 novembre 2010 - 11 août 2006 à 12:55
sidommou Messages postés 27 Date d'inscription vendredi 31 décembre 2004 Statut Membre Dernière intervention 29 novembre 2010 - 18 août 2006 à 08:24
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

sidommou Messages postés 27 Date d'inscription vendredi 31 décembre 2004 Statut Membre Dernière intervention 29 novembre 2010
11 août 2006 à 12:59
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>
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
16 août 2006 à 20:33
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)
0
sidommou Messages postés 27 Date d'inscription vendredi 31 décembre 2004 Statut Membre Dernière intervention 29 novembre 2010
17 août 2006 à 08:18
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
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
17 août 2006 à 09:28
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)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sidommou Messages postés 27 Date d'inscription vendredi 31 décembre 2004 Statut Membre Dernière intervention 29 novembre 2010
17 août 2006 à 13:00
Cette idée me plait beacoup. Merci de l'avoir suggérer. Pouvez vous m'endire plus.
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
17 août 2006 à 17:50
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)
0
sidommou Messages postés 27 Date d'inscription vendredi 31 décembre 2004 Statut Membre Dernière intervention 29 novembre 2010
18 août 2006 à 08:24
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.
0
Rejoignez-nous