Wieso verschwindet das Menu nicht bei mouseOut?
Stabilo
- javascript
Hallo allerseits,
ich habe eine Menu erstellt, welches beim mouseover weitere Links anzeigt. Das klappt alles ganz gut!
Aber das Menu verschwindet nicht, wenn ich mich mit der Maus vom Menu entferne.
Stimmt was mit show und hide oder was hab ich falsch gemacht?
Wäre superfroh, wenn das Problem behoben werden könnte.
-----------------------------------------------------------
Hier der Quelletext:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Navigation mit einfachem JavaScript Menu</TITLE>
<META content="text/html; charset=iso-8859-1" http-equiv=Content-Type>
<STYLE type=text/css>A {
COLOR: black; FONT: 8pt Arial; TEXT-DECORATION: none
}
A:hover {
COLOR: #ff3399; TEXT-DECORATION: underline
}
A.plain:hover {
COLOR: lime; FONT-SIZE: 8pt; TEXT-DECORATION: none
}
A:visited {
COLOR: grey
}
#box {
POSITION: absolute; VISIBILITY: hidden; layer-background-color: white
}
#gbox {
BACKGROUND-COLOR: white
}
#mnubar {
FONT: bold 8pt arial
}
</STYLE>
<SCRIPT language=JavaScript>
ns=window.navigator.appName == "Netscape"
ie=window.navigator.appName == "Microsoft Internet Explorer"
function openIt(x) {
if(ns) {
showbox= document.layers[x+1]
showbox.visibility = "show";
showbox.top=5
showbox.left=100;
var items = 1 ;
for (i=1; i<items; i++) {
elopen=document.layers[i]
if (i != (x + 1)) {
elopen.visibility = "hide" }
}
}
if(ie) {
curEl = event.toElement
curEl.style.background = "white"
showBox = document.all.box[x];
showBox.style.visibility = "visible";
showBox.style.top = 3
showBox.style.left = 100;
var items = 1 ;
for (i=0; i<items; i++) {
elOpen=document.all.box[i]
barEl=document.all.mnubar[i]
if (i != x){
elOpen.style.visibility = "hidden"
barEl.style.background = "white"
}
}
}
}
function closeIt() {
var items = 1 ;
for (i=0; i<items; i++) {
if(ie){
document.all.box[i].style.visibility = "hidden"
barEl=document.all.mnubar[i]
barEl.style.background = "green"
}
if(ns){ document.layers[i+1].visibility = "hide"}
}
}
</SCRIPT>
</HEAD>
<BODY bgColor=white leftMargin=0 topMargin=0 vLink=navy marginheight="0" marginwidth="0">
<TABLE bgColor=white border=0 cellPadding=0 height=1 id=mainmenu width="100%">
<TBODY>
<TR>
<TD align=middle noWrap width=54>
<A href="startseite.asp" id=mnubar onmouseover=openIt(0)>Linkempfehlung</A>
</TD>
</TR>
</TBODY>
</TABLE>
<FONT color=white face=Arial size=3>
<DIV onmouseover=closeIt()>
<LAYER onmouseover=closeIt()></LAYER></DIV>
<!-- Menu Bar Item 1 -->
<FONT size=8><DIV id=box style="LEFT: 2px">
<TABLE border=0 id=gbox cellspacing="0" cellpadding="0">
<TBODY>
<TR>
<TD><A href="http://www.toiag-telefonbuch.de/NSAPI/Anfrage"
target=body>Telefonauskunft</A>
</TD>
</tr>
<tr>
<TD><A href="http://bahn.hafas.de/bin/query.exe/dn"
target=body>Bahnfahrplan</A>
</TD>
</TR>
<TR>
<TD><A href="http://www.unileoben.ac.at/~hlfbruck/sch/lage.htm" target=body>Lage
und Daten</A>
</TD>
</tr>
<tr>
<TD><A href="http://www.donnerwetter.de/region"
target=body>Wetter</A>
</TD>
</TR>
<TR>
<TD><A href="http://www.falk-online.de/"
target=body>Routenplaner</A>
</TD>
</TR>
<TR>
<TD><A href="http://www.verkehrslage.de/cgi-bin/vklp.cgi"
target=body>Verkehrslage</A>
</TD>
</TR>
<TR>
<TD><A href="http://www.langenscheidt.aol.de/"
target=body>Fremwörterbuch</A>
</TD>
</TR>
</TBODY>
</TABLE></DIV>
<DIV id=box style="LEFT: 378px"></DIV>
</FONT>
</BODY>
</HTML>
---------------------------------------------------------------
Danke & schönen Abend noch,
Stabilo
hi!
Bei Deinem Programm ist es so, dass wenn es den Layer berührt, dass das Menu dann verschwindet. Dazu sollte der Layer unter dem Menu noch hervorschauen, ist bei DIr eben nicht der Fall. Gib Deinem Layer eine fixe Höhe an, und zwar so, dass er unter dem Menu hervorschaut. Gib einfach kurz eine andere Farbe, um es auszutesten.
Gruß, Jan
hi!
Bei Deinem Programm ist es so, dass wenn es den Layer berührt, dass das Menu dann verschwindet. Dazu sollte der Layer unter dem Menu noch hervorschauen, ist bei DIr eben nicht der Fall. Gib Deinem Layer eine fixe Höhe an, und zwar so, dass er unter dem Menu hervorschaut. Gib einfach kurz eine andere Farbe, um es auszutesten.
Gruß, Jan
Hallo und danke für den Hinweis,
aber der IE kann doch keine Layer height und width oder?
Gibt es denn nicht noch ein anderes Skript das diesen Menueffekt beherrscht?
ci@o
Stabilo
Hi Stabilo!
Hab grad in meinem Script nachgeschaut, da ich auch mal so einen Fehler hatte. Hab es nicht mit Height und Width gelöst, sondern einfach ein paar <br> eingefügt.
Gruß, Jan
Hi Stabilo!
Hab grad in meinem Script nachgeschaut, da ich auch mal so einen Fehler hatte. Hab es nicht mit Height und Width gelöst, sondern einfach ein paar
»» eingefügt.
Gruß, Jan
<br> klappt bei mir nicht, oder ich setz die an die falsche Stelle.
Im div Tag, oder wo?
Danke,
Stabilo
Hallo,
vorsichtige Anmerkung von mir: auch ich habe mit fertigen Scripten angefangen, wenn aber was nicht klapt, wäre "ein Verstehen" ganz gut. (Oder ein anderes Forum....)
Zu Deinen Fragen: ja, IE kann keine Layer, deswegen diese "Div-Layer" verschachtelung, damit beide Browser glücklich sind.
Es geht darum, das dieser Div (Layer-) Bereich (siehe SELFHTML) größer als das dadrüberliegende Menü sein muß.... wie ein T-Shirt, daß unterm Pullover rausschaut.... und wie schaft man das? Man zieht das T-Shirt lang....
Benutze einfach keine fertige Scripts oder versuche sie (Stückweise) zu verstehen, weiteres findest Du auch in dieser Dokumentation namens SELFHTML....
Chräcker
<img src="http://homepages.compuserve.de/ackheller/stempel/grafiken/logo.gif" alt="">http://www.chraecker.de/stempel
Hi Stabilo!
Einfach zwischen <layer> und </layer>. Ins <layer> musst Du einfach mit onmouseover die Funktion aufrufen, die das Menu schließt, aber das hast glaub eh schon.
Hier die URL, wo mein Menu ist: http://www.bits.co.at//webtrader
Gruß, Jan