Helpdesk
Menschen Wissenschaft Politik Mystery Kriminalfälle Spiritualität Verschwörungen Technologie Ufologie Natur Umfragen Unterhaltung
weitere Rubriken
PhilosophieTräumeOrteEsoterikLiteraturAstronomieHelpdeskGruppenGamingFilmeMusikClashVerbesserungenAllmysteryEnglish
Diskussions-Übersichten
BesuchtTeilgenommenAlleNeueGeschlossenLesenswertSchlüsselwörter
Schiebe oft benutzte Tabs in die Navigationsleiste (zurücksetzen).

jquery scrollto für Back-Button?

67 Beiträge ▪ Schlüsselwörter: Jquery, Scrollto ▪ Abonnieren: Feed E-Mail
AnGSt Diskussionsleiter
ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

jquery scrollto für Back-Button?

27.07.2012 um 16:06
@alliswrong

$seitenname = 'kontakt';


und bei jedem scroll zu einem anker:

$_SESSION[$seitenname][] = $anker;



und beim zurückgehen:

$anker = $_SESSION[$seitenname][count($_SEESION[$seitenname])-1];


?


(und letztes element aus dem array löschen)


melden

jquery scrollto für Back-Button?

27.07.2012 um 16:13
so in etwa würde ich das machen.
wobei du natürlich nicht vergessen darfst, den zurückgesprungenen anker aus der liste zu löschen mit unset();

dann sollte das gehen.


melden
AnGSt Diskussionsleiter
ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

jquery scrollto für Back-Button?

27.07.2012 um 16:24
mit etwas geschick sollte es sogar möglich sein, nicht nur zum letzten gewählten anker auf der vorherigen seite zurück zu gehen, sondern auch davon unabhängig zu der scrollposition auf der vorherigen seite?

das wäre dann genauso wie history.back(), nur mit dem unterschied, dass die alte seite nochmal neu geladen wird.

ich kann in $_SESSION[$seitenname][] = ... auch eine zahl (die scrollposition) ablegen? aber wie checke ich, dass es eine zahl ist statt dem namen eines ankers? oder gibt es einen anderen weg, die scrollpos zusätzlich zum anker zu merken?

irgendwie müsste aber der zuletzt gewählte anker zusätzlich zu der letzten scrollposition gemerkt werden. beim wieder dort hin springen muss zunächst zum anker gesprungen werden, ich denke das ist unumgänglich will man den anker in der url erscheinen haben, und dann zu der scrollposition springen.

ok, das ist aufwendig, aber es könnte funzen?

@alliswrong


melden
AnGSt Diskussionsleiter
ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

jquery scrollto für Back-Button?

27.07.2012 um 16:34
@alliswrong

ich könnte an alle on-site links auf der page ein .click event hängen, das die momentane scrollposition an die php seite über ajax übermittelt! :D


melden

jquery scrollto für Back-Button?

27.07.2012 um 16:41
@AnGSt
du kannst doch dein array beliebig erweitern. etwa so:

$_SESSION['seitenname']['anker0'] = "MeinAnker";
$_SESSION['seitenname']['scrollposition'] = 22; // EIne zahl


melden
AnGSt Diskussionsleiter
ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

jquery scrollto für Back-Button?

27.07.2012 um 16:43
@alliswrong

'anker0' ist ein index? ich dachte es müsste eine zahl sein, welche der nummer des ankers im stapel entspricht?


melden

jquery scrollto für Back-Button?

27.07.2012 um 17:08
mit zahlen ist einfacher durch zu iterieren. grundsätzlich kannst du als index alles nehmen.


melden
AnGSt Diskussionsleiter
ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

jquery scrollto für Back-Button?

27.07.2012 um 17:12
@alliswrong

Ok, aber ich kann doch nicht zahlen UND einen index verwenden? der index "scrollpos" würde doch auch bei der iteration (eigentlich nur immer vorletzten eintrag vom stapel lesen) mit auf tauchen? evtl irgendwo dazwischen?


melden
AnGSt Diskussionsleiter
ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

jquery scrollto für Back-Button?

27.07.2012 um 17:44
@alliswrong

Ok, ich sehe gerade dass ich numerische indizes und assoziative (wie zB 'scrollpos') parallel verwenden kann. aber wie weiss ich dann, welches das letzte numerisch indizierte ellement in der liste is, wenn doch count() evtl das feld 'scrollpos' mit zählt? soll ich noch ein feld 'stackpointer' einführen, in dem der derzeit höchste numerische index steht? oder einfach 1 vom count abziehen ... :)


melden

jquery scrollto für Back-Button?

27.07.2012 um 18:00
nimm zahlen. dann kannst du besser operieren. bin jetzt erstma weg, du schaffst das schon ;) die infos sollten reichen. falls es nicht klappt, nimm cookies ;)


melden

jquery scrollto für Back-Button?

30.07.2012 um 17:14
und hat es geklappt, @AnGSt ?


melden
AnGSt Diskussionsleiter
ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

jquery scrollto für Back-Button?

30.07.2012 um 17:15
@alliswrong

bin gerade dabei :)


melden
AnGSt Diskussionsleiter
ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

jquery scrollto für Back-Button?

30.07.2012 um 17:28
@alliswrong

Ist mir zu schwer. Kannst Du mir die Vorgehensweise nochmal erleutern? Also was genau machen ich beim laden einer Seite zB? Das mal so als Anfang. Ich weiss dass ich da erstmal die Session starten muss. Aber dann?


melden
AnGSt Diskussionsleiter
ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

jquery scrollto für Back-Button?

30.07.2012 um 18:22
zum beispiel weiss ich nicht, wie ich unterscheiden kann, ob die aufgerufene seite per meinem back aufgerufen wurde, oder per klick auf einen link zu dieser seite. in letztem fall müsste ich sie auf den stapel legen, im ersteren fall davon abheben. und eine seite muss auch mehrmals in der liste auftauchen können, was einen numerischen index nötig macht, statt deinem assoziativen.


melden

jquery scrollto für Back-Button?

30.07.2012 um 21:53
@AnGSt
hab grad nicht allzuviel zeit aber ich versuchs mal auf die schnelle:

du machst erst dein session_start();

dann musst du jeden link (a href) der auf einen anker zeigt eine ajax anfrage an eine datei starten lassen. etwa auf die datei speichereAnker.php
die datei speichereAnker.php kümmert sich um die speicherung auf den stapel.

dann brauchst du noch eine datei loescheAnker.php
diese wird jedesmal aufgerufen, wenn der user den selbstgebauten back button drückt (das php script nimmt also etwas vom stapel weg). ebenfalls ajax.


nun hast du speichern und löschen hinter dir. das einzige was noch bleibt ist zu sagen wann gespeichert und gelöscht wird (und natürlich auch was). wie oben schon kurz angedeutet, wird auf jeden geklickten anker die speichereAnker.php angefragt, und beim back button die loescheAnker.php. denen übergibst du einfach immer was gelöscht und was gespeichert werden soll.

der ablauf dannach läuft so:
deine seite mit dem session_start() schaut in die session und prüft, ob es gespeicherte anker gibt (die die speichereAnker.php erzeugt). wenn ja, wir ein javascript erzeugt, das den back button definiert. also im grunde etwas wie:

if isset($_session['anker']){
erzeuge js code
}

das session array ist ein mehrdimensionales array, das die seite und den anker speichert. wie du richtig erkannt hast, muss dein array einen numerischen index besitzen, um die reihenfolge zu erkennen. also etwas wie:

$_session['anker'][0]['seitenname'] und $_session['anker'][0]['anker']

das array sollte vielleicht nicht anker sondern lieber ankerliste heissen. sitze aber gerade am ipad und dauert zu lang das zu ändern. also lieber $_session['ankerliste']....

das ganze sollte gut funktionieren. wenn der user allerdings den browser back button drückt, und dannach den selbstgebauten back button, wird dieser an die seite geleitet, die in der ankerliste steht. aber wie gesagt, das lässt sich nicht umgehen.


melden
AnGSt Diskussionsleiter
ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

jquery scrollto für Back-Button?

30.07.2012 um 21:57
ok, habe es soweit geschafft, denke ich. den seitennamen benötige ich wohl nicht. wie unterscheide ich ob ich per back auf eine seite gekommen bin oder per click auf den link?


melden

jquery scrollto für Back-Button?

30.07.2012 um 21:58
garnicht ;)


melden
AnGSt Diskussionsleiter
ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

jquery scrollto für Back-Button?

30.07.2012 um 21:58
dann geht es nicht, oder?


melden

jquery scrollto für Back-Button?

30.07.2012 um 21:59
was geht dann nicht?


melden
AnGSt Diskussionsleiter
ehemaliges Mitglied

Link kopieren
Lesezeichen setzen

jquery scrollto für Back-Button?

30.07.2012 um 22:00
die ganze schöne history? ich muss doch wissen ob ich die eben aufgerufene seite auf dem stapel ablegen soll oder ob ich die vorherige abheben soll?


melden