PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Oben klebender Layer


nj0y
05.03.2002, 15:20
Ich habe durch Layers ein frameübergreifendes Menü realisiert. Durch einen Timer wird immer wieder die Top-Position des Layers auf den oberen Bildschirmrand gesetzt, damit das Menü auch sichtbar ist, wenn man nach unten gescrollt hat. Das funktioniert prima unter dem IE5, aber nicht mehr unter dem IE6.


function UpdateTop(x, FromTop)
{
if(MainFrame.document.all[x].style.visibility = "visible")
{
MainFrame.document.all[x].style.top = MainFrame.document.body.scrollTop + FromTop;
parent.WinTimeout = setTimeout("UpdateTop(´" + x + "´, " + FromTop + ")", 200);
}
}


x ist dabei die Nummer des Layers, FromTop ist 0. Wie gesagt, unter IE5 funktioniert es, unter IE6 nicht, da bleibt der Layer immer ganz oben, und wenn ich nach unten scrolle, scrolle ich das Menü aus dem sichtbaren Bereich heraus.

Es kommt keine JavaScript-Fehlermeldung.

Bin für alle Anregungen dankbar!


nj0y
07.03.2002, 18:04
Hilfe!!! ;( :(

Felix Kaiser
07.03.2002, 18:12
Gib mal den ganzen damit in Verbindung stehenden HTML und JavaScript Code, sonst ists jetzt bei der Fehlersuche einfach zeitlich zu aufwendig für mich.

nj0y
07.03.2002, 21:02
Das sind ein paar hundert KB... ich stell aber morgen mal was aus dem Nötigsten zusammen, danke schonmal!

nj0y
08.03.2002, 08:32
Sooo... http://nj0y.de/ie6problem

Da der größte Teil der Seiten dynamisch erzeugt wird, mußte ich das mit dem IE speichern und dann zusammenflicken, daher ist der Quellcode teilweise im IE-abartig-Stil geschrieben. Aber darum geht´s ja nicht ;).

Felix Kaiser
08.03.2002, 17:48
Das Problem ist, dass document.body.scrollTop stets 0 ist. Warum weiß ich nicht. Ob man das umgehen kann, ich kanns versuchen. Jedoch konnte ich feststellen, in einem einzelnen Fenster, ohne Frames, funktioniert diese Variable bestens und gibt den richtigen Wert aus. Aber in dem Frame von die ist die stets 0.

nj0y
08.03.2002, 18:36
Ich danke Dir schonmal für den Hinweis! Merkwürdig isses aber schon... ;)

Felix Kaiser
08.03.2002, 20:12
Über scrollTop komme ich einfach nicht weiter, aber ich habe über DOM2.0 ein verstecktes Objekt des Body entdeckt, welches man z.b. über document.getElementsByTagName("body")[0].attributes.scroll ansprechen kann. Leider habe ich einfach nichts näheres dazu gefunden, außer die Bestätigung, dass es laut DOM2.0 ein Objekt von Body ist.

Je nach dem wie Zeit ist kann ich ja mal ein bischen Ausschau nach Material darüber halten, Hilfe bei der Suche nach Informationen dazu ist willkommen :]

nj0y
11.03.2002, 13:10
Tjaaa... für weitere Hilfe (auch ggf. von anderen Leuten) bin ich nach wie vor dankbar... ;)

nj0y
19.04.2002, 12:32
Ich hab den Fehler endlich gefunden. Ich muß die erste Zeile:

<!DOCTYPE HTML PUBLIC>

ersetzen durch:

<!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;>

Ich habe die DOCTYPE-Zeile zwar noch nie wirklich verstanden, aber so klappt es wenigstens :D.

Felix Kaiser
19.04.2002, 13:58
Erklärt auch, warum ich in meinen eigenen Frames nie Probleme damit hatte, weil ich seit einigen Monaten die Zeile immer W3C konform richtig deklariere :D

Good work!