Henryk Plötz: dynamisches Menü funktioniert nicht

Beitrag lesen

Ich versuch, das mal zu kommentieren:

<html>

<head>
<title>ausziehlayer</title>
<style>

»»  .navi{

position:absolute;
     width:163px;
   height:139px;
   background-color:#00ABAB;
   }
</style>

<script language="JavaScript1.2">

if (document.all)

So, weit war nix falsch :-)

»»  { menue="document.all.navigate.style.left"; }

else  { menue="document.navigate.left"; }

Beim IE enthält der String jetzt "document.all.navigate.style.left", sonst den String "document.navigate.left". Nochmal zum Mitschreiben das sind _Strings_

klappzuint = setInterval("klappzu()",50)
klappaufint = setInterval("klappauf()",50)

Du setzt ein Interval? jetzt sofort?

function klappzustop() { clearinterval(klappzuint) }
function klappaufstop() { clearinterval(klappaufint) }

Eine Funktion zum Stoppen, sehr schön.

function klappauf(){

»»  klappzustop

Ich glaube hinter einen Funktionsaufruf, gehört immer noch ein () sowie ein ;

»»  if ( menue<0 )

menue+=5

Du kannst einen String doch nicht um 5 erhöhen, wieder das ;

»»  else klappaufstop }

Erwähnte ich die Funktionsschreibweise schon :-)

function klappzu(){

»»  klappaufstop
»»  if ( menue>-120 )

menue-=5

»»  else klappzustop }

Und noch mal dasselbe

</script>

</head>

<body bgcolor=#ABABAB MARGINWIDTH="0" MARGINHEIGHT="0" SCROLL="NO" onResize="history.go(0)">

Nur um nett zu sein: Alle Werte, die keine nur-Zahlen sind sollte man in Anführungsstriche setzen. Demnächst muß man sowieso alles in Anführungsstriche setzen.

<div id="navigate" class=navi style="top:150; left:-120;"onMouseover="pull()" onMouseout="draw()"><center>Navigationstest.

Wo kommt denn pull() und draw() auf einmal her?

Dieser Container soll sich bei mouseOver nach rechts bewegen</center></div>
</body>
</html>

Wenn ich das in NC oder IE lade, passiert rein garnichts. (BTW: es ist in beiden grün hinterlegt)

So jetzt kommt meine Version:

<html>

<head>
<title>ausziehlayer</title>
<style>
.navi{
   position:absolute;
     width:163px;
   height:139px;
   background-color:#00ABAB;
   }
</style>

<script>

if (document.all)
{ ie=true; }
else  { ie=false; }

klappzuint = null;
klappaufint = null;

function klappzustop() { clearTimeout(klappzuint); }
function klappaufstop() { clearTimeout(klappaufint); }

function klappauf(){
klappzustop();
klappaufint=setTimeout("klappauf()",50);
if(ie) linksrand=parseInt(document.all.navigate.style.left); else linksrand=document.navigate.left;
if ( linksrand<0 )
   linksrand+=5;
else klappaufstop();
if(ie) document.all.navigate.style.left=linksrand; else document.navigate.left=linksrand;
}

function klappzu(){
klappaufstop();
klappzuint=setTimeout("klappzu()",50);
if(ie) linksrand=parseInt(document.all.navigate.style.left); else linksrand=document.navigate.left;
if ( linksrand>-120 )
   linksrand-=5;
else klappzustop();
if(ie) document.all.navigate.style.left=linksrand; else document.navigate.left=linksrand;
}

</script>

</head>

<body bgcolor="#ABABAB" MARGINWIDTH="0" MARGINHEIGHT="0" SCROLL="NO" onResize="history.go(0)">

<div id="navigate" class="navi" style="top:150; left:-120;" onMouseover="klappauf();"
onMouseout="klappzu();"><center>Navigationstest.<br>Dieser Container soll sich bei mouseOver nach
rechts bewegen</center></div>
</body>
</html>

Im NC passiert leider wieder nichts, aber da mußt du das Mouseover vielleicht nur woanders hinsetzen.

Das nächste mal, schau aber lieber noch ein bischen in SelfHTML vorbei, Stichwort Dynamisches HTML