erdenbuerger01: Java Navigationsanpassung

Hallo,
ich habe folgendes Problem, habe von Java kaum Ahnung und hoffe, dass mir hier jemand helfen kann.
Der folgende Code (hier gefunden...da gibt es auch eine Vorschau: http://javarea.de/index.php3?openca...cat=Navigation&id=471 )funktioniert super und ist auch leicht anpassbar. Problem ist nur:

  1. Die Navigation soll sich am Anfang nicht von alleine öffnen.
  2. Anstatt per Klick die Submenüs zu öffnen, möchte ich fragen, ob es auch möglich ist, diese per MouseOver öffnen zu lassen.

Der Code lautet:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Cascade Menu</title>

<style type="text/css">
<!--
.menu
{
background-color: #2b6ebb;
border: 1px solid #008;
font-family: Verdana;
position: absolute;
font-weight: bold;
padding-top: 3px;
font-size: 10px;
cursor: pointer;
width: 150px;
color: #fff;
}

.item_panel
{
border-left: 1px solid #008;
border-right: 1px solid #008;
clip: rect(0, 150, 0, 0);
position: absolute;
width: 150px;
}

.item_panel a
{
text-decoration: none;
cursor: pointer;
color: #000;
}

.item
{
background-color: #e9f0f8;
font-family: Verdana;
font-size: 10px;
width: 148px;
}
//-->
</style>

<script type="text/javascript">
<!--
// www: http://www.javarea.de
// Copyright by javarea.de

// Link[nr] = 'position [0 is menu/1 is item] | Link name | url | target (blank|top|frame_name)'
var Link = new Array();

Link[0] = '0|JavaScripte';
Link[1] = '1|Javarea.de|http://www.javarea.de|';
Link[2] = '1|Javarea.de|http://www.javarea.de|';
Link[3] = '1|Javarea.de|http://www.javarea.de|';
Link[4] = '1|Javarea.de|http://www.javarea.de|';
Link[5] = '0|Html Hilfe';
Link[6] = '1|selfhtml|http://|';
Link[7] = '1|lerne html|http://|'
Link[8] = '0|Sonst';
Link[9] = '1|Gästebuch|http://|';
Link[10] = '1|Kontakt|http://|';
Link[11] = '0|noch mehr';
Link[12] = '1|bla bla|';

var height = 20; // Hoehe der Menuekoepfe
var iheight = 15; // Hoehe der Menueelemente
var bgc = '#e9f0f8' // background color of the item
var over_bgc = '#fff';
var tc = '#000' // text color of the item
var over_tc = '#004891';
var speed = 0;
var timerID = 0;
var width = 152;
var N = (document.all) ? 0 : 1;
var self_menu = new Array();

function write_menu()
{
smc = 0;
mn = 0;
mni = 1;
start = -1;

document.write('<div style="position: absolute;">');

for (var i = 0; i < Link.length; i++)
{
la = Link[i].split('|');

if (la[0] == 0)
{
if (start == 0)
{
document.write('</div>');

h = csmc * iheight;
tmn = mn; // - h;
self_menu[smc] = new Array(tmn, h, 0, -2);

smc++;
mn--;
}

csmc = 0;

document.write('<div id="down' + smc + '" class="menu" '

  • 'style="top: ' + mn + 'px; height: ' + height + 'px;" '
  • 'onclick="pull_down(' + smc + ', ' + mni + ');">'
  • ' ' + la[1] + '</div>');

self_menu[smc] = new Array(mn, height, 0, mni);

smc++;
mni++;
mn += height;
start = 1;
}
else
{
if (start == 1)
{
if (N)
mn += 2;

document.write('<div id="down' + smc + '" class="item_panel" '

  • 'style="top: '+ mn + 'px;">');

start = 0;
}

document.write('<a href="' + la[2] + '"'

  • ((la[3] != '') ? ' target="' + la[3] + '"' : '')
  • '><div id="d' + i + '" class="item" '
  • 'style="height: ' + iheight + 'px;'
  • ((N) ? ' width:150px;' : '')
  • '" onmouseover="color(this.id);" '
  • 'onmouseout="uncolor(this.id);">'
  • ' ' + la[1] + '</div></a>');

csmc++;
}
}

if (start == 0)
{
document.write('</div>');

h = csmc * iheight;
tmn = mn + 5; // - h;
self_menu[smc] = new Array(tmn, h, 0);
name = 'down' + (self_menu.length - 1);

obj = document.getElementById(name);
obj.style.borderBottomColor = '#008';
obj.style.borderBottomWidth = '1px';
obj.style.borderBottomStyle = 'solid';
}

document.write('</div>');
}

function color(obj)
{
document.getElementById(obj).style.backgroundColor = over_bgc;
document.getElementById(obj).style.color = over_tc;
}

function uncolor(obj)
{
document.getElementById(obj).style.backgroundColor = bgc;
document.getElementById(obj).style.color = tc;
}

function pull_down(nr, c)
{
if (timerID == '')
{
to = self_menu[nr + 1][1]
begin = nr + 2;

if (timerID != '')
clearTimeout(timerID);

if (self_menu[nr + 1][2] == 0)
{
self_menu[nr + 1][2] = 1;

if (nr == (self_menu.length - 2))
to++;

epull_down(begin, to, 0);
}
else
{
to = 0;
self_menu[nr + 1][2] = 0;
name = 'down' + (nr + 2);
open_item = 0;

for (var i = 0; i < nr; i++)
if (self_menu[i][2] == 1)
open_item += self_menu[i][1];

if (N == false)
open_item -= (c * 1);

if (nr == (self_menu.length - 2))
{
val = self_menu[self_menu.length - 1][1];
to = -1;
}
else
val = parseInt(document.getElementById(name).style.top) - (open_item) - (c * height);

epull_up(begin, to, val);
}
}
}

function epull_down(nr, to, nowv)
{
name = 'down' + (nr - 1);
obj = document.getElementById(name).style.clip = 'rect(0, ' + width + ', ' + (nowv + 1) + ', 0)';

for (var i = nr; i < self_menu.length; i++)
{
name = 'down' + i;
obj = document.getElementById(name);
obj.style.top = parseInt(obj.style.top) + 1;
}

nowv++;

if (nowv < to)
timerID = setTimeout('epull_down(' + nr + ', ' + to + ', ' + nowv + ');', speed);
else
timerID = 0;
}

function epull_up(nr, to, nowv)
{
name = 'down' + (nr - 1);
obj = document.getElementById(name).style.clip = 'rect(0, ' + width + ', ' + nowv + ', 0)';

for (var i = nr; i < self_menu.length; i++)
{
name = 'down' + i;
obj = document.getElementById(name);
obj.style.top = parseInt(obj.style.top) - 1;
}

nowv--;

if(nowv > to)
timerID = setTimeout('epull_up(' + nr + ', ' + to + ', ' + nowv + ');', speed);
else
timerID = 0;
}

function startup(nr)
{
write_menu();

if (nr != 0)
{
for (var i = 0; i < self_menu.length; i++)
{
if (self_menu[i][3] == nr)
pull_down(i, nr);

i == self_menu.length;
}
}
}
//-->
</script>

</head>
<body>

<script type="text/javascript">
<!--
startup(1);
//-->
</script>

</body>
</html>

Für Hilfe wäre ich sehr dankbar,
Liebe Grüsse, Erdenbuerger

  1. Hi,

    ich habe folgendes Problem, habe von Java kaum Ahnung

    Das erklaert wohl auch, warum du es mit JavaScript verwechselst.

    Der folgende Code (hier gefunden...da gibt es auch eine Vorschau: http://javarea.de/index.php3?openca...cat=Navigation&id=471 )funktioniert super

    Nur die Adresse nicht so, hm?

    1. Die Navigation soll sich am Anfang nicht von alleine öffnen.
    2. Anstatt per Klick die Submenüs zu öffnen, möchte ich fragen, ob es auch möglich ist, diese per MouseOver öffnen zu lassen.

    Eine nur per JavaScript benutzbare Navigation ist Murks.

    Schau dir stattdessen das hier an: http://de.selfhtml.org/css/layouts/navigationsleisten.htm

    MfG ChrisB

    --
    „This is the author's opinion, not necessarily that of Starbucks.“
    1. Ich finde es wirklich sehr schade, wie von oben herab man hier behandelt wird. Wenn ich nach Spanien reise und mir im Urlaub ab und zu mal ein Brötchen kaufen möchte, muss ich auch nicht gleich die ganze Sprache lernen. So bin ich auch kein Webdesigner, sondern möchte nur meine Seiten etwas schmücken und dachte, dass ich hier kompetente Hilfe bekommen könnte.

      Für jeden, der mir helfen mag und nicht von mir verlangt ein Webprogrammierer zu werden hier nochmal der Link:

      http://javarea.de/index.php3?opencat=Javascript&subcat=Navigation&id=471

      Man kann aber auch einfach den Code in nen Editor einfügen und schon sieht man das Beispiel:

      1. Die Navigation soll sich am Anfang nicht von alleine öffnen.
      2. Anstatt per Klick die Submenüs zu öffnen, möchte ich fragen, ob es auch möglich ist, diese per MouseOver öffnen zu lassen.

      Kann mir da jemand helfen?

      Liebe Grüsse, Erdenbuerger

      1. Mahlzeit Erdenbuerger01,

        Ich finde es wirklich sehr schade, wie von oben herab man hier behandelt wird. Wenn ich nach Spanien reise und mir im Urlaub ab und zu mal ein Brötchen kaufen möchte, muss ich auch nicht gleich die ganze Sprache lernen.

        Richtig. Dafür nimmt man sich dann ein Wörterbuch mit, in dem u.U. einzelne Floskeln drinstehen. Vergleichbar wäre das mit "Webseitenerstellungsprogrammen", "Homepage-Baukästen" usw. - sie liefern einem ohne große Vorkenntnisse einfache Hilfen, sind aber schrecklich unflexibel. Wenn man wirklich die Sprache lernen möchte, dann kommt man nicht umhin, sich wirklich damit auseinanderzusetzen.

        Wenn Du also - um das Beispiel jetzt wieder zurückzuübertragen - individuelle Anpassungen an bestehendem Code vornehmen oder eigene Ideen umsetzen willst, wirst Du Dir wohl oder übel zumindest <http://de.selfhtml.org/javascript/intro.htm@title=die Grundlagen von Javascript> aneignen müssen. Bei konkreten Fragen wird Dir hier gern geholfen ...

        So bin ich auch kein Webdesigner,

        Ich auch nicht. Und ich vermute, das sind die Wenigsten hier ...

        sondern möchte nur meine Seiten etwas schmücken

        Um Seiten zu "schmücken", sollten sie erstmal vernünftig aufgebaut sein. Sie sollten ferner auch ohne diesen "Schmuck" funktionieren. Beide Voraussetzungen sind mit dem von Dir geposteten Code nicht gegeben.

        und dachte, dass ich hier kompetente Hilfe bekommen könnte.

        Bekommst Du auch. Du hast allerdings etwas anderes erwartet - vermutlich Quellcode, den Du ohne Verständnis einfach kopieren und einfügen kannst ... der Dir aber insgesamt und auf längere Sicht nur Probleme bereiten wird. Hier bei "SELF"HTML gibt es - wie der Name bereits vermuten lässt - Hilfe zur Selbsthilfe.

        Kann mir da jemand helfen?

        Du selbst am besten - glaub's mir. Aber wir helfen Dir gern dabei, Dir selbst zu helfen.

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
  2. ich habe folgendes Problem, habe von Java kaum Ahnung und hoffe, dass mir hier jemand helfen kann.

    ja, das ist wie mit den leuten die ohne polischkenntnisse nach spanien auswandern :)

    java != javascript != jscript

    1. Die Navigation soll sich am Anfang nicht von alleine öffnen.
    2. Anstatt per Klick die Submenüs zu öffnen, möchte ich fragen, ob es auch möglich ist, diese per MouseOver öffnen zu lassen.

    ich erahne was du willst: das ist nicht benützerfreundlich

    beginne zuerst, dein menü mit <http://de.selfhtml.org/css/layouts/navigationsleisten.htm@title=vernünftigem html> auszuzeichnen, dann sehen wir mit css weiter und wenns dann nicht wie gewünscht wird, kann man mit ein paar zeilen javscript nachhelfen - aber doch nicht seitenweise