Hallo,
ich benutze auf meiner Website eine JavaScript-Funktion, die mir das Navigationsmenü ab einer bestimmten Scrollposition fixiert. Ich rufe die Funktion per window.onscroll auf:
<script>
window.onscroll = function() { NavMenue.fix(); };
</script>
Das funktioniert soweit auch. Das hier ist die Funktion dazu. Wieso ich das so gebaut habe, versuche ich gleich zu erklären...
var NavMenue = {
pos : window.pageYOffset,
fix : function() {
var pos = window.pageYOffset;
this.pos = pos;
//console.log(this.pos);
/* Fixieren */
}
};
Ich brauche nämlich die zuletzt ermittelte Scrollposition auf einer Unterseite noch für eine andere Funktion. Deshalb dachte ich, ich könnte im Objekt 'NavMenue' die letzte Scrollposition als Eigenschaft 'pos' speichern und an anderer Stelle wiederverwenden. Im Dokument gibt es also zwei script-Blöcke, in denen einmal mit der fix-Methode das Menü fixiert und dann die Scrollposition in der pos-Eigenschaft gespeichert wird und dann dieser Wert abgefragt werden soll.
<!--html-->
<script>
window.onscroll = function() { NavMenue.fix(); };
</script>
<!-- HTML-- >
<script>
window.onscroll = function() { console.log(NavMenue.pos); };
</script>
<!--HTML-->
Leider funktioniert das nicht so wie erhofft. Ich bekomme immer nur den pos-Wert zurück, mit dem das Objekt angelegt wurde, nicht die Veränderungen nach .fix().
Irgendwo schein ich ja nen schweren Denkfehler zu haben, aber ich komme nicht drauf.
Beste Grüße
Onkel Schnitzel