Ebenenverschiebung bei Untermenue im IE
Sabine
- browser
Help!Help!Help! Habe eine Navigationsleiste mit verstecktem Untermenue auf Ebenen und im IE werden mir die Ebenen jedesmal ganz nach oben über die Navigation oder ganz nach unten verschoben. Probiere jetzt schon 2 Tage lang und verzweifel bald. Wer kennt das Problem und hilft mir?
Anbei der Quelltext <html> <head> <title>Dropdown</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script language="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); // -->
function MM_findObj(n, d) { //v4.0 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); if(!x && document.getElementById) x=document.getElementById(n); return x; }
function MM_showHideLayers() { //v3.0 var i,p,v,obj,args=MM_showHideLayers.arguments; for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2]; if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; } obj.visibility=v; } }
function MM_timelinePlay(tmLnName, myID) { //v1.2 //Copyright 1997 Macromedia, Inc. All rights reserved. var i,j,tmLn,props,keyFrm,sprite,numKeyFr,firstKeyFr,propNum,theObj,firstTime=false; if (document.MM_Time == null) MM_initTimelines(); //if very 1st time tmLn = document.MM_Time[tmLnName]; if (myID == null) { myID = ++tmLn.ID; firstTime=true;}//if new call, incr ID if (myID == tmLn.ID) { //if Im newest setTimeout('MM_timelinePlay("'+tmLnName+'",'+myID+')',tmLn.delay); fNew = ++tmLn.curFrame; for (i=0; i<tmLn.length; i++) { sprite = tmLn[i]; if (sprite.charAt(0) == 's') { if (sprite.obj) { numKeyFr = sprite.keyFrames.length; firstKeyFr = sprite.keyFrames[0]; if (fNew >= firstKeyFr && fNew <= sprite.keyFrames[numKeyFr-1]) {//in range keyFrm=1; for (j=0; j<sprite.values.length; j++) { props = sprite.values[j]; if (numKeyFr != props.length) { if (props.prop2 == null) sprite.obj[props.prop] = props[fNew-firstKeyFr]; else sprite.obj[props.prop2][props.prop] = props[fNew-firstKeyFr]; } else { while (keyFrm<numKeyFr && fNew>=sprite.keyFrames[keyFrm]) keyFrm++; if (firstTime || fNew==sprite.keyFrames[keyFrm-1]) { if (props.prop2 == null) sprite.obj[props.prop] = props[keyFrm-1]; else sprite.obj[props.prop2][props.prop] = props[keyFrm-1]; } } } } } } else if (sprite.charAt(0)=='b' && fNew == sprite.frame) eval(sprite.value); if (fNew > tmLn.lastFrame) tmLn.ID = 0; } } }
function MM_timelineStop(tmLnName) { //v1.2 //Copyright 1997 Macromedia, Inc. All rights reserved. if (document.MM_Time == null) MM_initTimelines(); //if very 1st time if (tmLnName == null) //stop all for (var i=0; i<document.MM_Time.length; i++) document.MM_Time[i].ID = null; else document.MM_Time[tmLnName].ID = null; //stop one }
function MM_timelineGoto(tmLnName, fNew, numGotos) { //v2.0 //Copyright 1997 Macromedia, Inc. All rights reserved. var i,j,tmLn,props,keyFrm,sprite,numKeyFr,firstKeyFr,lastKeyFr,propNum,theObj; if (document.MM_Time == null) MM_initTimelines(); //if very 1st time tmLn = document.MM_Time[tmLnName]; if (numGotos != null) if (tmLn.gotoCount == null) tmLn.gotoCount = 1; else if (tmLn.gotoCount++ >= numGotos) {tmLn.gotoCount=0; return} jmpFwd = (fNew > tmLn.curFrame); for (i = 0; i < tmLn.length; i++) { sprite = (jmpFwd)? tmLn[i] : tmLn[(tmLn.length-1)-i]; //count bkwds if jumping back if (sprite.charAt(0) == "s") { numKeyFr = sprite.keyFrames.length; firstKeyFr = sprite.keyFrames[0]; lastKeyFr = sprite.keyFrames[numKeyFr - 1]; if ((jmpFwd && fNew<firstKeyFr) || (!jmpFwd && lastKeyFr<fNew)) continue; //skip if untouchd for (keyFrm=1; keyFrm<numKeyFr && fNew>=sprite.keyFrames[keyFrm]; keyFrm++); for (j=0; j<sprite.values.length; j++) { props = sprite.values[j]; if (numKeyFr == props.length) propNum = keyFrm-1 //keyframes only else propNum = Math.min(Math.max(0,fNew-firstKeyFr),props.length-1); //or keep in legal range if (sprite.obj != null) { if (props.prop2 == null) sprite.obj[props.prop] = props[propNum]; else sprite.obj[props.prop2][props.prop] = props[propNum]; } } } else if (sprite.charAt(0)=='b' && fNew == sprite.frame) eval(sprite.value); } tmLn.curFrame = fNew; if (tmLn.ID == 0) eval('MM_timelinePlay(tmLnName)'); }
function MM_initTimelines() { //v4.0 //MM_initTimelines() Copyright 1997 Macromedia, Inc. All rights reserved. var ns = navigator.appName == "Netscape"; var ns4 = (ns && parseInt(navigator.appVersion) == 4); var ns5 = (ns && parseInt(navigator.appVersion) > 4); document.MM_Time = new Array(1); document.MM_Time[0] = new Array(2); document.MM_Time["menuaus"] = document.MM_Time[0]; document.MM_Time[0].MM_Name = "menuaus"; document.MM_Time[0].fps = 15; document.MM_Time[0][0] = new String("behavior"); document.MM_Time[0][0].frame = 20; document.MM_Time[0][0].value = "MM_showHideLayers('Untermenue1','','hide')"; document.MM_Time[0][1] = new String("behavior"); document.MM_Time[0][1].frame = 15; document.MM_Time[0][1].value = "MM_showHideLayers('untermenue2','','hide','unterebene3','','hide')"; document.MM_Time[0].lastFrame = 20; for (i=0; i<document.MM_Time.length; i++) { document.MM_Time[i].ID = null; document.MM_Time[i].curFrame = 0; document.MM_Time[i].delay = 1000/document.MM_Time[i].fps; } } //--> </script> </head>
<body bgcolor="#cccccc" text="#000000" leftmargin="100" topmargin="100" marginwidth="100" marginheight="100"> <div id="Untermenue1" style="position:absolute; left:101px; top:168px; width:198px; height:100px; z-index:1; visibility: hidden"> <p><font face="Verdana, Arial, Helvetica, sans-serif"><a href="#" onMouseOver="MM_timelineStop('menuaus');MM_showHideLayers('untermenue2','','show')" onMouseOut="MM_timelinePlay('menuaus');MM_timelineGoto('menuaus','1')">Sony</a></font></p> <p><font face="Verdana, Arial, Helvetica, sans-serif"><a href="#" onMouseOver="MM_timelineStop('menuaus');MM_showHideLayers('unterebene3','','show')" onMouseOut="MM_timelineGoto('menuaus','1');MM_timelinePlay('menuaus')">Telekom</a></font></p> <p><font face="Verdana, Arial, Helvetica, sans-serif">Bosch</font></p> <p> </p> </div> <div id="untermenue2" style="position:absolute; left:172px; top:171px; width:201px; height:71px; z-index:2; visibility: hidden"> <p><a href="#" onMouseOver="MM_timelineStop('menuaus')" onMouseOut="MM_timelinePlay('menuaus');MM_timelineGoto('menuaus','1')">Handy</a></p> <p>HiFi</p> </div> <div id="unterebene3" style="position:absolute; left:189px; top:301px; width:174px; height:74px; z-index:3; visibility: hidden"> <p><a href="http://www.web.de" onMouseOver="MM_timelineStop('menuaus')" onMouseOut="MM_timelineGoto('menuaus','1');MM_timelinePlay('menuaus')">T-DSL</a></p> <p> </p> </div> <table width="600" border="0" cellspacing="0" cellpadding="0" height="50"> <tr> <td width="200"><font face="Verdana, Arial, Helvetica, sans-serif"><b><font size="4"><a href="#" onMouseOver="MM_showHideLayers('Untermenue1','','show');MM_timelineStop('menuaus')" onMouseOut="MM_timelinePlay('menuaus');MM_timelineGoto('menuaus','1')">Referenzen</a></font></b></font></td> <td width="200"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="4">Produkte</font></b></td> <td width="200"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="4">Kontakt</font></b></td> </tr> </table> </body> </html>
hi,
Habe eine Navigationsleiste mit verstecktem Untermenue auf Ebenen und im IE werden mir die Ebenen jedesmal ganz nach oben über die Navigation oder ganz nach unten verschoben.
die wunderbaren, vorgefertigten, höchst umständlichen und äusserst schlecht wartbaren macromedia-javascripte sind also wieder mal am werk ...
Probiere jetzt schon 2 Tage lang und verzweifel bald.
was probierst du seit 2 tagen?
die funktionen und deinen html-code wirklich zu verstehen, oder probierst du nur im editor eine unmotivierte änderung nach der nächsten aus ...?
Anbei der Quelltext
lies bitte mal </faq/#Q-07c>, und beachte besonders den anfang des zweiten absatzes.
gruss,
wahsaga
Hallo, heisst das hier übrigens ;), denn ich glaube im normalen Leben würdest du auch keinen Kunden direkt mit deiner Frage belasten oder?
das ist mal wieder typisch Dreamweaver Code, da wird Dir keiner helfen, denn den hast du ja auch nicht selber erstellt, sondern erstellen lassen. Ausserdem kenne ich viele Probleme im IE die nicht laufen wie Sie laufen sollen ;)
Andererseits solltest du dich vielleicht mehr mit CSS auseinander setzten, wegen der Positionierung von divs usw. denn dann würdest du sicherlich auch weiter kommen. Schließlich hast du uns ja nicht verraten wo genau das Untermenü aufgehen soll! Wenn ich z.B. bei der unterebene3 top:171px; schreibe gehts genauso im IE auch oben auf wie alle anderen.
Grüße
Christoph (kann man hier auch sagen)