mmofacts.com

Browser soll sich Position merken

gepostet vor 13 Jahre, 11 Monate von Makconner

Ich möchte erreichen der der Brwoser nach dem klicken auf einen Button, nicht wie üblich nach oben links springt. Sondern sich seine Positon merkt und die neu geladene Anzeige auf der letzten Position beibehält.

Beispiel: wir haben eine Schaltfläche die wir erst benutzen können wenn wir ein Stück nach unten gescrollt haben. Wenn wir jetzt draufklicken läd das Bild neu und springt nach oben. Das nervt... der Browser soll einfach nur die Position halten sodas ich gleich das Ergebnis an der Stelle des Buttons sehen kann.

Hat einer ne Idee?

gepostet vor 13 Jahre, 11 Monate von WChris

Ich denke die einfachste Methode wäre über Anker. Dem Link einfach eine ID vom gewünschten Bereich mitgeben und schon gehts.

gepostet vor 13 Jahre, 11 Monate von condor83

naja

die aktuelle bildposition mit js zum Beispiel auslesen und mitsenden. und dann auf der neuen seite genau so weit runterscrollen...

wäre vielleicht ein ansatz...

lg

gepostet vor 13 Jahre, 11 Monate von WChris

Ich nehme an das Austauschen des Bildes geschieht via JS beim onClick event? Wieso springt der da überhaupt? Steht im href "#" als Wert? Falls ja würde ich da einfach javascript:void(0); einsetzen. Dann sollte nichts mehr springen.

gepostet vor 13 Jahre, 11 Monate von knalli

Oder das Event mit einem false beenden (wenn man guten Markup ohne "onclick" schreibt ;)).

gepostet vor 13 Jahre, 11 Monate von WChris

Original von knalli

Oder das Event mit einem false beenden (wenn man guten Markup ohne "onclick" schreibt ;)).

logo, nur return false alleine hat bei mir nicht immer crossplatform funktioniert, also wäre sicherlich event.stop etc. noch gut :)

PS: Warum bin ich eigentlich nur Gruppe "User". Sollte ich nicht auch Gruppe "Entwickler" sein ??

gepostet vor 13 Jahre, 11 Monate von rami95

Original von knalli

Oder das Event mit einem false beenden (wenn man guten Markup ohne "onclick" schreibt ;)).

Warum nur dann? onclick="blakeks();return false;" funktioniert.

gepostet vor 13 Jahre, 11 Monate von knalli

Wo hat das denn nicht gereicht? Der Safari2 hatte ein seltames Event-Bubbling (oder keines), aber sonst?

gepostet vor 13 Jahre, 11 Monate von WChris

Original von rami95

Original von knalli

Oder das Event mit einem false beenden (wenn man guten Markup ohne "onclick" schreibt ;)).

Warum nur dann? onclick="blakeks();return false;" funktioniert.

Er wollte damit sicherlich nur sagen das onclick einfach keine saubere Schreibweise ist. Ordentlich ist es nur über die Events.

Original von knalli

Wo hat das denn nicht gereicht? Der Safari2 hatte ein seltames Event-Bubbling (oder keines), aber sonst?

 Puh frag mich doch nicht sowas^^ Ist schon relativ lange her, deswegen hau ich seitdem einfach beides rein, dann funktioniert es auch wirklich überall. :)

gepostet vor 13 Jahre, 11 Monate von knalli

Original von rami95

Original von knalli

Oder das Event mit einem false beenden (wenn man guten Markup ohne "onclick" schreibt ;)).

Warum nur dann? onclick="blakeks();return false;" funktioniert.

Das "onclick"-Attribut gehört nunmal in kein *gutes* Markup. Oder anders: Gar kein Javascript sollte außerhalb eines "script"-Tags stehen. Das etwas funktioniert, heißt noch lange nicht, dass es auch gut ist.

Wenn du mit deinen Insellösung zufrieden bist, dann ist das deine Entscheidung. Ich würde es nur nicht empfehlen - einzige Ausnahme sind uU sog. Mini-Seiten, wo man sogar das CSS einpacken kann (wirklich nur eine statische, ohne dynamische Inhalte,  HTML-Seite). Dort spielt langfristig Overhead, Wartbarkeit u.ä. keine effektive Rolle.

gepostet vor 13 Jahre, 11 Monate von rami95

Original von knalli

Das "onclick"-Attribut gehört nunmal in kein *gutes* Markup. Oder anders: Gar kein Javascript sollte außerhalb eines "script"-Tags stehen. Das etwas funktioniert, heißt noch lange nicht, dass es auch gut ist.

Wenn du mit deinen Insellösung zufrieden bist, dann ist das deine Entscheidung. Ich würde es nur nicht empfehlen - einzige Ausnahme sind uU sog. Mini-Seiten, wo man sogar das CSS einpacken kann (wirklich nur eine statische, ohne dynamische Inhalte,  HTML-Seite). Dort spielt langfristig Overhead, Wartbarkeit u.ä. keine effektive Rolle.

Ich stimme dir zu, dass das nicht elegant ist. Aber dein Posting klang so, als ob es andernfalls garnicht *ginge*.

Ich persönlich nutze bisschen zu oft onclick="" als es schön ist, aber lagere eigentlich fast alles JavaScript in automatisch komprimierte externe Dateien aus.

gepostet vor 13 Jahre, 11 Monate von MrMaxx

Ich weiss ja nicht, ob sich da was getan hat, aber die Eventsysteme von JQuery oder Prototype waren vor nem Jahr noch (als ich das letzte Mal getestet habe) recht langsam. Bei meiner Kartenansicht (Prototype benutzt), die sehr viele Klickevents hat, wurde bei deren Benutzung das Spielgeschehen signifikant langsamer.

Eleganz hin der her...ich benutze wieder onclick-Attribute auf den Elementen.

Just my 2ct...

MrMaxx

gepostet vor 13 Jahre, 11 Monate von WChris

Original von MrMaxx

Ich weiss ja nicht, ob sich da was getan hat, aber die Eventsysteme von JQuery oder Prototype waren vor nem Jahr noch (als ich das letzte Mal getestet habe) recht langsam. Bei meiner Kartenansicht (Prototype benutzt), die sehr viele Klickevents hat, wurde bei deren Benutzung das Spielgeschehen signifikant langsamer.

Eleganz hin der her...ich benutze wieder onclick-Attribute auf den Elementen.

Just my 2ct...

MrMaxx

Also bei jQuery hat sich wirklich verdammt viel getan seit letztem Jahr. Besonders seit 1.4 ist jQuery spürbar schneller geworden, ob das jetzt auch direkt auf Events zutrifft kann ich dir leider nicht sagen, aber ich nutze sie doch sehr intensiv und ich muss sagen, es ist schon verdammt flott, selbst auf meinem G4 und der schafft es net mal flash-videos ruckelfrei darzustellen XD

PS: Bin übrigens ein großer Fan deines Overwatch-Projektes! Ist wirklich schon super gelungen und ähnelt doch erstaunlich sehr dem, was ich auch unbedingt mal bauen wollte^^ Da werde ich mir wohl was anderes aus den Fingern saugen müssen ;)

gepostet vor 13 Jahre, 11 Monate von knalli

Original von MrMaxx

Ich weiss ja nicht, ob sich da was getan hat, aber die Eventsysteme von JQuery oder Prototype waren vor nem Jahr noch (als ich das letzte Mal getestet habe) recht langsam. Bei meiner Kartenansicht (Prototype benutzt), die sehr viele Klickevents hat, wurde bei deren Benutzung das Spielgeschehen signifikant langsamer.

Eleganz hin der her...ich benutze wieder onclick-Attribute auf den Elementen.

Just my 2ct...

MrMaxx

Erstens kommst es darauf an, wie du die Events angelegt hast. Man kann da imho (und mit der Selector-Technik) viel Dummes bauen, wenn man nicht aufpasst. 

Zweitens, in 1.3 oder 1.4 wurde ein größeres Update in das Selector-Processing eingeführt, womit ein deutlicher Performance-Schub kam.

Auf diese Diskussion antworten