DIV-Elemente scrollen/Alternative für scrollTo() und offsetTop gesucht

Frank Gessner

Grünschnabel
Hallo,

mein Problem ist Folgendes:
Habe mehrere <div>-Elemente in einem HTML-Dokument.

Eines dieser Elemente hat folgende Eigenschaften:

#contentA {
position:absolute;
top:18px;
left:0px;
z-index:101;
background: #ffffff;
border:solid 1px #666666;
visibility: visible;
overflow-y: scroll;
overflow-x: hidden


Die Inhalte dieses Elemente lassen per Klick die Seite neu laden, beeinflussen andere Elemente (hier nicht relevant) und soll wieder den gleich Zustand annehmen. So auch die Position, an die innerhalb dieses "Fensters" gescrollt wurde. Der Nutzer soll also nicht bemerken, dass an diesem Objekt Änderungen vorgenommen wurden. Kapiert? Wer nicht schaut mal kurz hierher:
http://www.fresh-vibes.de/store/msd/test/
(es geht rein um die linke Box)

Jetzt habe ich zunächst den Wert für das bisherige Scrollen mit:
document.getElementById("contentA").offsetTop ;
auslesen wollen (ist nur für aktuellen IE notwendig)

Das Problem ist nur, dass offsetTop mir nicht den Wert, der gescrollt wurde liefert,
sondern die Position zum Vaterelement, nämlich genau die 18 Pixel per CSS-Definition (s.o.). Die will ich aber nicht...

Problem Nummer 2:
Ähnliches ergibt sich, wenn ich (nachdem der Wert - dann eben testweise erst mal "18" - an die
URL übergeben und wieder ausgelesen wurde) setzen wollte, nämlich mit:

var temp = document.getElementById("contentA");
temp.scrollTo(0,yScroll);

Gescrollt wird hier nämlich mal gar net, weil laut Browser
"das Objekt diese Methode oder Eigenschaft nicht unterstützt".

Wo liegt mein Problem bzw. dessen Lösung?
Warum kann ich einem DIV-Objekt erlauben, dass es scrollbar ist (overflow-y: scroll; ),
dann aber nicht daraufansprechen?

Gibt es denn Alternativen für die Funktionen 'offsetTop' bzw. 'scrollTo()'?
Vermute, dass diese sich nur auf das window-Element anwenden lassen...

Danke für eure Hilfe

Frank
 
Naja...ein <div> ist kein window-Object, ob es nun scrollbar ist oder nicht.... hat somit auch nicht dessen Eigenschaften.
Nimm anstatt des scrollbaren <div> ein <iframe>....dies ist ein window-Objekt und hat somit auch alle von dir benötigten Eigenschaften und kann per JS gescrollt werden.
 
Hallo,

vielleicht hab ich einen Ansatz - ist nicht schön, könnte aber funktionieren. Man könnte versuchen jedem Link einen Namen (laufende Nummer) mitzugeben, die onClick gespeichert wird. Zusätzlich brauchen wir für jeden Link einen Anker mit dem selben Namen. wird beim Reload einfach der Anker an die Url angehangen. Bei mir funtionierts in einem kleinen Beispiel (mit Mozilla) ziemlich gut. Alles in allem wär ich aber auch eher für einen Iframe...

ciao
 

Neue Beiträge

Zurück