jQuery Scoll an letzte Mausposition?
hawkmaster
- javascript
Hallo zusammen,
ich mache mit jQuery und DataTable eine Tabelle. Es ist eine scrollbare Tabelle mit 200px Höhe.
Angenommen man markiert in der Tabelle eine Zeile und die Seite wird danach neue geladen, dann wird die Tabelle auch neu geladen und fängt wieder ganz oben an.
Ich hätte gerne das der zuvor markierte Eintrag wieder gleich sichtbar ist. Ich kann mir den Row Index merken.
Auch kann man mit;
oTable.parent().scrollTop(9999);
z.b. ganz nach unten in der Tabelle scrollen.
Wie aber könnte man erreichen, dass immer zum letzten markierten Eintrag gescrollt wird?
(ich hoffe es war verständlich was ich meinte :-) )
vielen Dank und viele Grüße
hawk
Moin,
du musst dir nicht die Mausposition merken, sondern die Scrolltiefe. Also wird das entsprechende Event auf das scrollen gelegt und nicht auf das bewegen der Maus. Wenn gescrollt wird, wird das Event ausgelöst und die Scrollposition wird ermittelt.
Diese Infos gilt es jetzt so zu "speichern", dass sie auf der "neuen" Seite vorhanden sind. Entweder werden sie in den Link per Parameter übergeben oder du speicherst sie in einem Cookie.
R
e
x
Wie aber könnte man erreichen, dass immer zum letzten markierten Eintrag gescrollt wird?
(ich hoffe es war verständlich was ich meinte :-) )
Du könntest jedem Eintrag (Zeile) eine laufende ID geben, (id=x_1, id=x_2, ...) und speicherst die zuletzt geklickte ID als Cookie.
Beim nächsten Aufruf der Seite (Tage später) liest du das Cookie aus und positionierst auf die ID.
Noch pfiffiger ist das, wenn sich der Inhalt der Liste ändern kann, z.B. eine Artikelliste. Dan nimmst du als ID die eindeutige Artikelnummer und unabhängig davon, auf welcher Zeile der Artikel beim nächsten Aufruf der Seite steht, zu ihm wird gescrollt.
Linuchs
Wie aber könnte man erreichen, dass immer zum letzten markierten Eintrag gescrollt wird?
(ich hoffe es war verständlich was ich meinte :-) )
Das ist jetzt vielleicht ein banaler Vorschlag, aber warum verwendest du nicht einen Anchor?
Wenn die Seite gleich im Anschluss neu geladen wird, dies über einen Link erfolgt und du nicht drauf angewiesen bist, dass die Position über einen längeren Zeitraum gespeichert werden soll könntest du dieses Verhalten auch ganz klassisch mit einem http://de.selfhtml.org/html/verweise/anzeige/a_name.htm@title=Anchor erreichen.
lg
mark