Robert: javascript formel bei scrollendem menue

Beitrag lesen

Hallo!
Ich habe ein scrollendes Menu erstellt. Diese fuktioniert in Mozilla, Internet-Explorer und netscape 4 und hoeher.
Es wäre möglich ein scrollendes Menü so zu erstellen das man ein Interval hat, welches immer wieder die position vom layer (menu) je nach Browser auf die von document.body.scrollTop oder document.documentElement.scrollTop oder ... stellt. Das sieht leider unschön aus da das menu von ort zu ort springt. also wollte ich es flüssiger ausschauen lassen und habe dafür gesorgt das es immer nur in teilen runter kommt. Also wenn der Layer auf top=4 ist und body.scrollTop auf 9 dann sorge ich dafür  das der layer immer nur ein vierzigstel von dem weg zu document.body.scrollTop hinter sich legt. So functioniert der Code:

menu.style ist jenach Browser eine Referenz auf das selbe objekt wie document.getElementById(...).style oder document.all[...].style oder document.layers[...]

^^^^^^^^
|||||||| ich weiß nicht ob das richtig ausgedrückt ist aber ich nehme an ihr versteht was ich meine, wenn nicht dann sagt es bitte dann versuche ich es anders auszudrücken.

hier nun die Idee:

window.setInterval("geh()",10);

function geh()
{
poslay=menu.style.top; //position vom layer

poslay=parseInt(poslay); //z.B. 120px in 120 um wandeln

posscroll=document.body.scrollTop; /* gescrollte position dieses beispiel funktionier nur mit dem IE und Mozilla aber das ist ja auch nciht das was ich bei meinem eigentlichen Code verwendet habe. */

menu.style.top = poslay   +  (posscroll-poslay)/40;    /* (posscroll-poslay) ist der Weg den der layer zurück legen muss. das /40 sorgt dafür das der layer immer nur ein 40stel zurücklegt. Dadurch wird es flüssiger?  */
}

Alles klappt in allen Browsern nur ein problem tritt auf
der Layer kommt beim runter scrollen nicht an die position von document.body.scrollTop oder document.documentElement.scrollTop oder ... .
Schaut bitte selbst, wenn ihr nicht wisst was ich meine.

http://ikt.bg9.at/~rchiryai/2.html

Wennn jemand meint, es lege daran das (posscroll-poslay)/40 eine kommerzahl ergibt, irrt er. Ich habe das (possscroll-poslay)/40 mit Math.round gerundet.

Ich weiß es ist nicht leicht zu verstehen, aber vielleicht hat schon jemand ein scrollender Menu gemacht und hat den selben fehler wie ich gemacht oder kann sich was darunter vorstellen.

Danke schonmal für Antworten
MFG Robert