molily: Scroll, Position Fixed, wert übergabe, nicht nach oben springen

Beitrag lesen

  1. Browserweiche für IE ist mir klar mit conditional comments, aber wie geht eine Browserweiche für Safari, dort springt es nämlich noch mal anders als in allen anderen Browsern.

Was springt wie und warum? Untersuche das erst mal, denn Browserweichen solltest du möglichst vermeiden. Im Übrigen wäre eher eine Engine-Weiche sinnvoll, wenn das Problem bei Webkit liegt - nicht nur Safari benutzt diese Engine.

  1. Wie geht das konkret mit document.documentElement.scrollTop bzw. document.body.scrollTop? gelesen hatte ich dies alles schon, aber die Umsetzung ist nicht 1 zu 1 beschrieben, irgendwann lässt sich fast alles lösen,..., mit eurer Hilfe vielleicht schneller.

Mit einer Fallunterscheidung bzw. bedingten Anweisung:

if (das eine) { nimm das eine; } else { nimm das andere; }

Bei den besagten Eigenschaften geht das einfach, weil sie entweder 0 sind, was zu false umgewandelt wird, oder größer 0 sind, die zu true umgewandelt wird.

Oder du nimmst das größere mit http://de.selfhtml.org/javascript/objekte/math.htm#max@title=Math.max:

var yOffset = Math.max(document.documentElement.scrollTop, document.body.scrollTop);

Oder es ginge vermutlich auch (alle Browser berücksichtigt):

var yOffset = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;

Im standardkonformen Modus mit vollem DOCTYPE braucht dich im IE eigentlich nur document.documentElement.scrollTop interessieren.

  1. Ich freue mich wenn mein Weg grundlegend richtig zu sein scheint, aber gibt es nicht irgendwo eine schon fertige Lösung?

Vermutlich, mir ist aber keine bekannt. Die müsstest du suchen.

Mathias