cs_g2m
Messages postés1Date d'inscriptiondimanche 16 mars 2003StatutMembreDernière intervention17 mars 2003
-
17 mars 2003 à 00:22
catmc
Messages postés1Date d'inscriptionmardi 16 mars 2004StatutMembreDernière intervention24 janvier 2005
-
24 janv. 2005 à 17:03
nouveau dans la création de site, je bute sur une chose simple, créer un menu déroulant horizontale avec survol.
Un truc simple quoi!
Dans cette barre 8 rubriques : acces1 à 8 le survol est blanc puis FFFF99.
les sous rubriques sont acces10 à acces 80
merci de me répondre, ça fait deux nuits que je suis dessus.
iwaweb
Messages postés57Date d'inscriptiondimanche 22 octobre 2000StatutMembreDernière intervention26 septembre 20221 20 mars 2003 à 14:12
Pour t'aider tu peux utiliser l'excellent selfhtml qui est un manuel en HTML sur la plupart des technologies web telles que Javascript,HTML,CSS. C'est un excellent manuel qui m'a beaucoup aidé dans la réalisation de mon site.
<SCRIPT type=text/javascript>
var NoOffFirstLineMenus=6; // Nombre de catégories de 1er niveau
var LowBgColor='#0000FF'; // Couleur de fond quand la souris ne survole pas le menu
var LowSubBgColor='#0000FF'; // Couleur de fond quand la souris ne survole pas de sous-catégorie
var HighBgColor='#FFDF00'; // Couleur de fond quand la souris survole les catégories
var HighSubBgColor='#FFDF00'; // Couleur de fond quand la souris survole les sous-catégories
var FontLowColor='#00FFFF'; // Couleur de la police du menu quand la souris ne le survole pas
var FontSubLowColor='#800000'; // Couleur de la police des sous-cat quan la souris ne les survolent pas
var FontHighColor='white'; // Couleur de la police des catégories quand la souris les survole
var FontSubHighColor='white'; // Couleur de la police des sous-cat quand la souris les survole
var BorderColor='black'; // Couleur de bordure des catégories principales
var BorderSubColor='black'; // Couleur de bordure des sous-catégories
var BorderWidth=0; // Epaisseur en pixel des bordures
var BorderBtwnElmnts=1; // Epaisseur entre les catégories
var FontFamily="arial,comic sans ms,technical" // Choix des polices
var FontSize=9; // Taile des polices
var FontBold=1; // 1 = gras, 0 = non gras
var FontItalic=0; // 1 = italique, 0 = droit
var MenuTextCentered='center'; // position des textes 'left', 'center' ou 'right'
var MenuCentered='left'; // Position horizontale du menu 'left', 'center' ou 'right'
var MenuVerticalCentered='top'; // osition verticale du menu 'top', 'middle' or 'bottom'
var ChildOverlap=.2;
var ChildVerticalOverlap=.2;
var StartTop=0;
var StartLeft=1;
var VerCorrect=0;
var HorCorrect=0;
var LeftPaddng=3;
var TopPaddng=2;
var FirstLineHorizontal=1; // 0 pour un menu vertical & 1 pour un menu horizontal
var MenuFramesVertical=1;
var DissapearDelay=1000;
var TakeOverBgColor=1;
var FirstLineFrame='navig';
var SecLineFrame='space';
var DocTargetFrame='space';
var TargetLoc='';
var HideTop=0;
var MenuWrap=1;
var RightToLeft=0;
var UnfoldsOnClick=0;
var WebMasterCheck=0;
function BeforeStart(){return}
function AfterBuild(){return}
function BeforeFirstOpen(){return}
function AfterCloseAll(){return}
// Note de Net@scope : Ici commence la désignation des liens du menu
var AgntUsr=navigator.userAgent.toLowerCase();
var DomYes=(document.getElementById)?1:0;
var NavYes=(AgntUsr.indexOf('mozilla')!=-1&&AgntUsr.indexOf('compatible')==-1)?1:0;
var ExpYes=(AgntUsr.indexOf('msie')!=-1)?1:0;
var Opr5=(AgntUsr.indexOf('opera 5')!=-1||AgntUsr.indexOf('opera/5')!=-1)?1:0;
var DomNav=(DomYes&&NavYes)?1:0;
var DomExp=(DomYes&&ExpYes)?1:0;
var Nav4=(NavYes&&!DomYes&&document.layers)?1:0;
var Exp4=(ExpYes&&!DomYes&&document.all)?1:0;
var PosStrt=((NavYes||ExpYes)&&!Opr5)?1:0;
var FrstLoc,ScLoc,DcLoc;
var ScWinWdth,ScWinHght,FrstWinWdth,FrstWinHght;
var ScLdAgainWin;
var FirstColPos,SecColPos,DocColPos;
var RcrsLvl=0;
var FrstCreat=1,Loadd=0,Creatd=0,IniFlg,AcrssFrms=1;
var FrstCntnr=null,CurrntOvr=null,CloseTmr=null;
var CntrTxt,TxtClose,ImgStr;
var Ztop=100;
var ShwFlg=0;
var M_StrtTp=StartTop,M_StrtLft=StartLeft;
var LftXtra=(DomNav)?LeftPaddng:0;
var TpXtra=(DomNav)?TopPaddng:0;
var M_Hide=(Nav4)?'hide':'hidden';
var M_Show=(Nav4)?'show':'visible';
var Par=(parent.frames[0]&&FirstLineFrame!=SecLineFrame)?parent:window;
var Doc=Par.document;
var Bod=Doc.body;
var Trigger=(NavYes)?Par:Bod;
MenuTextCentered=(MenuTextCentered==1||MenuTextCentered=='center')?'center':(MenuTextCentered==0||MenuTextCentered!='right')?'left':'right';
WbMstrAlrts=["No such frame: ","Item not defined: ","Item needs height: ","Item needs width: ","Item Oke ","Menu tree oke"];
function Dummy(){return} // Executes user onload when found
function CnclSlct(){return false} // Prevents text select on menu items.
function RePos(){ // Repositions menu after resize IE and NS6
var FrstCntnrStyle=(!Nav4)?FrstCntnr.style:FrstCntnr;
FrstWinWdth=(ExpYes)?FrstLoc.document.body.clientWidth:FrstLoc.innerWidth;
FrstWinHght=(ExpYes)?FrstLoc.document.body.clientHeight:FrstLoc.innerHeight;
ScWinWdth=(ExpYes)?ScLoc.document.body.clientWidth:ScLoc.innerWidth;
ScWinHght=(ExpYes)?ScLoc.document.body.clientHeight:ScLoc.innerHeight;
if(TargetLoc)ClcTrgt();
if(MenuCentered)ClcLft();
if(MenuVerticalCentered)ClcTp();
PosMenu(FrstCntnr,StartTop,StartLeft)}
function UnLoaded(){ // Disables menu when document gets unloaded
if(typeof(CloseTmr)!='undefined'&&CloseTmr)clearTimeout(CloseTmr);
Loadd=0; Creatd=0;
if(HideTop){
var FCStyle=(Nav4)?FrstCntnr:FrstCntnr.style;
FCStyle.visibility=M_Hide}}
function ReDoWhole(){ // Reloads after resize NS4 only
if(ScWinWdth!=ScLoc.innerWidth||ScWinHght!=ScLoc.innerHeight||FrstWinWdth!=FrstLoc.innerWidth||FrstWinHght!=FrstLoc.innerHeight)
Doc.location.reload()}
function Check(WMnu,NoOf){ // Checks menu tree
var i,Hg,Wd,La,Li,Nof,array,ArrayLoc;
ArrayLoc=(parent.frames[0])?parent.frames[FirstLineFrame]:self;
for(i=0;i<NoOf;i++){
array=WMnu+eval(i+1);
if(!ArrayLoc[array]){WbMstrAlrt(1,array); return false}
La=ArrayLoc[array][0]; Li=ArrayLoc[array][1]; Nof=ArrayLoc[array][3];
if(i==0){ if(!ArrayLoc[array][4]){WbMstrAlrt(2,array); return false}
if(!ArrayLoc[array][5]){WbMstrAlrt(3,array); return false}}
Hg=ArrayLoc[array][4]; Wd=ArrayLoc[array][5];
if(!WbMstrAlrt(4,'\n\n'+array+'\nwidth: '+Wd+'\nheight: '+Hg+'\nLabel: '+La+'\nLink: '+Li+'\nNo of sub items: '+Nof)){WebMasterCheck=0; return true}
if(ArrayLoc[array][3])if(!Check(array+'_',ArrayLoc[array][3])) return false}
return true}
function WbMstrAlrt(No,Xtra){
if(WebMasterCheck)return confirm(WbMstrAlrts[No]+Xtra+' ')}
function ClcTrgt(){ // Calculates StartTop and Left when positioning is relative
var TLoc=(Nav4)?FrstLoc.document.layers[TargetLoc]:(DomYes)?FrstLoc.document.getElementById(TargetLoc):FrstLoc.document.all[TargetLoc];
StartTop=M_StrtTp; StartLeft=M_StrtLft;
StartTop+=(Nav4)?TLoc.pageY:TLoc.offsetTop;
StartLeft+=(Nav4)?TLoc.pageX:TLoc.offsetLeft}
function ClcLft(){ // Calculates StartTop and Left when menu is centered
if(MenuCentered!='left'){
var Size=FrstWinWdth-((!Nav4)?parseInt(FrstCntnr.style.width):FrstCntnr.clip.width);
StartLeft=M_StrtLft;
StartLeft+=(MenuCentered=='right')?Size:Size/2}}
function ClcTp(){ // Calculates StartTop and Left when menu is centered
if(MenuVerticalCentered!='top'){
var Size=FrstWinHght-((!Nav4)?parseInt(FrstCntnr.style.height):FrstCntnr.clip.height);
StartTop=M_StrtTp;
StartTop+=(MenuVerticalCentered=='bottom')?Size:Size/2}}
function PosMenu(CntnrPntr,Tp,Lt){ // Positions menu elements
var Topi,Lefti,Hori;
var Cntnr=CntnrPntr;
var Mmbr=Cntnr.FrstMbr;
var CntnrStyle=(!Nav4)?Cntnr.style:Cntnr;
var MmbrStyle=(!Nav4)?Mmbr.style:Mmbr;
var PadL=(Mmbr.value.indexOf('<')==-1)?LftXtra:0;
var PadT=(Mmbr.value.indexOf('<')==-1)?TpXtra:0;
var MmbrWt=(!Nav4)?parseInt(MmbrStyle.width)+PadL:MmbrStyle.clip.width;
var MmbrHt=(!Nav4)?parseInt(MmbrStyle.height)+PadT:MmbrStyle.clip.height;
var CntnrWt=(!Nav4)?parseInt(CntnrStyle.width):CntnrStyle.clip.width;
var CntnrHt=(!Nav4)?parseInt(CntnrStyle.height):CntnrStyle.clip.height;
var SubTp,SubLt;
RcrsLvl++;
if (RcrsLvl==1 && AcrssFrms)(!MenuFramesVertical)?Tp=FrstWinHght-CntnrHt+((Nav4)?4:0):Lt=(RightToLeft)?0:FrstWinWdth-CntnrWt+((Nav4)?4:0);
if (RcrsLvl==2 && AcrssFrms)(!MenuFramesVertical)?Tp=0:Lt=(RightToLeft)?ScWinWdth-CntnrWt:0;
if (RcrsLvl==2 && AcrssFrms){Tp+=VerCorrect;Lt+=HorCorrect}
CntnrStyle.top=(RcrsLvl==1)?Tp:0;Cntnr.OrgTop=Tp;
CntnrStyle.left=(RcrsLvl==1)?Lt:0; Cntnr.OrgLeft=Lt;
if (RcrsLvl==1 && FirstLineHorizontal){Hori=1; Lefti=CntnrWt-MmbrWt-2*BorderWidth;Topi=0}
else{Hori=Lefti=0; Topi=CntnrHt-MmbrHt-2*BorderWidth}
while(Mmbr!=null){
PadL=(Mmbr.value.indexOf('<')==-1)?LftXtra:0;
PadT=(Mmbr.value.indexOf('<')==-1)?TpXtra:0;
MmbrStyle.left=Lefti+BorderWidth;
MmbrStyle.top=Topi+BorderWidth;
if(Nav4)Mmbr.CmdLyr.moveTo(Lefti+BorderWidth,Topi+BorderWidth);
if(Mmbr.ChildCntnr){
if(RightToLeft)ChldCntnrWdth=(Nav4)?Mmbr.ChildCntnr.clip.width:parseInt(Mmbr.ChildCntnr.style.width);
if(Hori){ SubTp=Topi+MmbrHt+2*BorderWidth;
SubLt=(RightToLeft)?Lefti+MmbrWt-ChldCntnrWdth:Lefti}
else{ SubLt=(RightToLeft)?Lefti-ChldCntnrWdth+ChildOverlap*MmbrWt+BorderWidth:Lefti+(1-ChildOverlap)*MmbrWt+BorderWidth;
SubTp=(RcrsLvl==1&&AcrssFrms)?Topi:Topi+ChildVerticalOverlap*MmbrHt}
PosMenu(Mmbr.ChildCntnr,SubTp,SubLt)}
Mmbr=Mmbr.PrvMbr;
if(Mmbr){ MmbrStyle=(!Nav4)?Mmbr.style:Mmbr;
MmbrWt=(!Nav4)?parseInt(MmbrStyle.width)+PadL:MmbrStyle.clip.width;
MmbrHt=(!Nav4)?parseInt(MmbrStyle.height)+PadT:MmbrStyle.clip.height;
(Hori)?Lefti-=(BorderBtwnElmnts)?(MmbrWt+BorderWidth):(MmbrWt):Topi-=(BorderBtwnElmnts)?(MmbrHt+BorderWidth):(MmbrHt)}}
RcrsLvl--}
function Initiate(){ // Resets menu's visiblity
if(IniFlg){Init(FrstCntnr);IniFlg=0;if(ShwFlg)AfterCloseAll();ShwFlg=0}}
function Init(CntnrPntr){
var Mmbr=CntnrPntr.FrstMbr;
var MCStyle=(Nav4)?CntnrPntr:CntnrPntr.style;
RcrsLvl++;
MCStyle.visibility=(RcrsLvl==1)?M_Show:M_Hide;
CntnrPntr.Sflg=(RcrsLvl==1)?1:0;
while(Mmbr!=null){
if(Mmbr.ChildCntnr) Init(Mmbr.ChildCntnr);
Mmbr=Mmbr.PrvMbr}
RcrsLvl--}
function ClearAllChilds(Pntr,ChldPntr){ // Hides no longer wanted elements
var CPCCStyle;
while (Pntr){
if(Pntr.ChildCntnr&&Pntr.ChildCntnr.Sflg){
CPCCStyle=(Nav4)?Pntr.ChildCntnr:Pntr.ChildCntnr.style;
if(Pntr.ChildCntnr!=ChldPntr){CPCCStyle.visibility=M_Hide;Pntr.ChildCntnr.Sflg=0}
ClearAllChilds(Pntr.ChildCntnr.FrstMbr,ChldPntr)}
Pntr=Pntr.PrvMbr}}
function GoTo(){ // Triggered by mouse click
if(this.LinkTxt){
status='';
if(Nav4){if(this.LowLyr.LoBck)this.LowLyr.bgColor=this.LowLyr.LoBck;if(this.LowLyr.value.indexOf('ScWinWdth+LScrlld)SubLt=ScWinWdth+LScrlld-CCW}
else{ if(SubLt+CCW>ScWinWdth+LScrlld)SubLt=(this.Level==1)?ScWinWdth+LScrlld-CCW:SubLt-(CCW+(1-2*ChildOverlap)*ThisWt);
if(SubLt<LScrlld)SubLt=LScrlld}
if(SubTp+CCH>TpScrlld+ScWinHght)SubTp=(this.Level==1)?SubTp=TpScrlld+ScWinHght-CCH:SubTp-CCH+(1-2*ChildVerticalOverlap)*ThisHt;
if(SubTp<TpScrlld)SubTp=TpScrlld}
ChCntTL.top=SubTp;ChCntTL.left=SubLt;ChCntTL.visibility=M_Show}
status=this.LinkTxt}
catmc
Messages postés1Date d'inscriptionmardi 16 mars 2004StatutMembreDernière intervention24 janvier 2005 24 janv. 2005 à 17:03
Merci Bastienal,
votre aide m'ai d'un grand secours.
Si je peux me permetre d'abuser de vos compétances, j'aimerais savoir
comment ont obtiens le débordement d'une Frame avec ce menu.
Je mexplique, j'ai une bande sur la gauche (frame je crois) ou se
trouve ce code et sur la droite (MainFrame) les pages à afficher mais
le menu déroulant ne veux pas sortir de la frame de gauche et se trouve
tout écrasé.
J'ai l'impression que l'on ne peut pas le mettre dans une Frame.
Je suis désolé de poster une question aussi bète mais je débute et n'ai pas lu ce qu'il fallait.