zu anker springen
eddi
- php
0 dedlfix
0 1UnitedPower0 eddi0 1UnitedPower0 Der Martin
0 1UnitedPower0 eddi0 suit
0 bitman
Hai,
ich lade mit insert eine php Datei zu.
Über einen GET-Parameter bekomme ich einen String.
Nun soll die Seite beim Laden sofort an einen Anker innerhalb des zugeladenen Scripts springen.
Der Anker ist durch den GET-Parameter definiert.
Vermutlich werde ich Javascript dazu bitten müssen, oder gehts auch anders?
Gruß
Tach!
Nun soll die Seite beim Laden sofort an einen Anker innerhalb des zugeladenen Scripts springen.
Der Anker ist durch den GET-Parameter definiert.
Zum Anker springen ist eine Client-Aktion. Mit PHP kannst du da nichts anstellen - außer den Client zu einer URL mit Anker weiterleiten.
Vermutlich werde ich Javascript dazu bitten müssen, oder gehts auch anders?
Wenn der Client in seiner URL nichts von einem Anker sieht, kann er nichts machen. Mit Javascript kannst du ihm jedoch auf die Sprünge helfen.
dedlfix.
Nun soll die Seite beim Laden sofort an einen Anker innerhalb des zugeladenen Scripts springen.
Der Anker ist durch den GET-Parameter definiert.
Warum benutzt du nicht das Fragment (der Teil eines URL hinter der Raute) dafür?
Warum benutzt du nicht das Fragment (der Teil eines URL hinter der Raute) dafür?
Der Seiten URL kann ich den Anker nicht mitgeben, da ich mit Insert einen Content in eine Box lade.
Ich hab das jetzt mit Javascript und dem window.location.hash probiert.
Das ist aber auch Käse.
Wenn ich jetzt zu dem Anker springe, haut mir die ganze Seite nach oben ab.
Logisch.
Ich bräuchte nen Trick, dass nur der Anker innerhalb der Box angesprungen wird.
Der Seiten URL kann ich den Anker nicht mitgeben, da ich mit Insert einen Content in eine Box lade.
Was ist "Insert"? Ein PHP-Framework? Eine Methode?
Und was ist "Box"? Ein div-Container, ein iframe?
Ich bräuchte nen Trick, dass nur der Anker innerhalb der Box angesprungen wird.
Hallo,
Was ist "Insert"? Ein PHP-Framework? Eine Methode?
gute Frage. Jedenfalls keine Funktion bzw. kein Sprachkonstrukt, das PHP von Haus aus bietet. Vermutlich meint eddi include.
Und was ist "Box"? Ein div-Container, ein iframe?
Aus der schwachen Erklärung vermute ich: Ein Blockelement (z.B. ein div-Container) mit fixen Abmessungen und scrollbarem Inhalt.
Ich bräuchte nen Trick, dass nur der Anker innerhalb der Box angesprungen wird.
window.scrollTo?
Wollte ich auch schon vorschlagen; das ist aber nicht nur zufällig eine Methode des window-Objekts. Somit wirkt es auch nur auf die Scroll-Position des gesamten Dokuments und kann nicht auf ein bestimmtes Element angewendet werden.
Noch dazu kann sich window.scrollTo() nicht an einem Anker orientieren, sondern nur an einer festen pixelbasierten Position. Schade eigentlich.
Ciao,
Martin
Wollte ich auch schon vorschlagen; das ist aber nicht nur zufällig eine Methode des window-Objekts. Somit wirkt es auch nur auf die Scroll-Position des gesamten Dokuments und kann nicht auf ein bestimmtes Element angewendet werden.
Das ist korrekt, falls er einen iframe verwendet ist das aber eine Möglichkeit. Wir können ja nur raten was mit "Box" gemeint ist.
Noch dazu kann sich window.scrollTo() nicht an einem Anker orientieren, sondern nur an einer festen pixelbasierten Position. Schade eigentlich.
https://developer.mozilla.org/en-US/docs/DOM/element.scrollIntoView ;)
https://developer.mozilla.org/en-US/docs/DOM/element.scrollIntoView ;)
Hab ein kleines Beispiel gebastelt: http://jsfiddle.net/x2rp6/
gute Frage. Jedenfalls keine Funktion bzw. kein Sprachkonstrukt, das PHP von Haus aus bietet. Vermutlich meint eddi include.
Sorry, aber so isses.
Ich bring das immer wieder mal durcheinander und wunder mich dann wenns nicht funktionert :)
Aus der schwachen Erklärung vermute ich: Ein Blockelement (z.B. ein div-Container) mit fixen Abmessungen und scrollbarem Inhalt.
Auch das ist so.
Noch dazu kann sich window.scrollTo() nicht an einem Anker orientieren, sondern nur an einer festen pixelbasierten Position. Schade eigentlich.
In dem Fall auch nicht brauchbar, da der Content und damit die PixelPosition sich ändern kann.
Demnach, also nicht machbar?
Dann bleibt nur die Lösung den Content in einzelne Dateien zu packen und die dann mit "INCLUDE" (jetzt hab ichs, beim nächsten mal verwende ich garantiert wieder Insert) hinzuladen. Das scrollen zu den anderen Inhalten fällt dann leider weg. Aber man kann ja über die in einer anderen Box vorhandene Navigation gehen.
Noch dazu kann sich window.scrollTo() nicht an einem Anker orientieren, sondern nur an einer festen pixelbasierten Position. Schade eigentlich.
In dem Fall auch nicht brauchbar, da der Content und damit die PixelPosition sich ändern kann.
Demnach, also nicht machbar?
Sicehr, das oben genannte ist die Lösung - nur muss zuvor die Position des Ankers ermittelt werden, um dann hinscrollen zu können.
Hai,
Lachs,
du hast also ein Zeitenfolgeproblem.
Die URL steht also schon, wenn Du die Seite zusammenbaust per PHP.
Einfacher Trick: an die URL _immer_ ein "#go" anhängen. Und wenn dann das PHP-Modul meint, das Fragment nutzen zu wollen, dann baut es einfach die ID="go" ein oder einen Anker...
Gruß
selber Gruß
bitman