Ich benutze etwas JavaScript, um meine Seitenleiste zu fixieren, wenn der Benutzer die Seite scrollt und wenn er fast bis zum Ende der Seite reicht, dann die Seitenleiste position: static
. Dies ist der Code:Zuweisen von translateY-Wert durch eine Zeichenfolge
<script>
window.onscroll = function() {
var px = window.scrollY;
var x = document.getElementsByClassName("sidebar");
var body = document.body,
html = document.documentElement;
var poht = Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);
var poht2 = poht - 1300;
if(px < poht2){
if(px > 1700)
{x[0].style.position="fixed";x[0].style.transform="translateY(-1700px)";}
if(px < 1680){
if(x[0].style.position=="fixed")
{x[0].style.position="static";x[0].style.transform="translateY(20px)";}
}
}
// Problem occurs here
pos2 = -1 * 2300 - poht2;
pos2 = pos2 + "px";
else {x[0].style.position="static";x[0].style.transform="translateY(pos2)";}
}
</script>
In der letzten Zeile (ich meine else
), wenn ich einen Wert berechnen möchten, und ordnen sie translateY()
, es funktioniert nicht. Was ist die richtige Form dafür?
Danke.
verwenden, warum nicht absolut verwenden, unten: 0? –