2017-03-12 5 views
0

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.

+0

verwenden, warum nicht absolut verwenden, unten: 0? –

Antwort

2

Sie können String-Verkettung oder eine Vorlage wörtliche

x[0].style.transform = "translateY(" + pos2 + ")" 

x[0].style.transform = `translateY(${pos2})` 
Verwandte Themen