[Javascript] Ändra style.display på en div och en annan div scrollar tillbaka

Permalänk
Medlem

[Javascript] Ändra style.display på en div och en annan div scrollar tillbaka

Jag har en bit kod på min sida som visar/gömmer en div

JS

function viewer_toggleWindow(id) { var c = document.getElementById(id); if( c == null ) { return; } if( c.style.display === "block" ) { c.style.display = "none"; } else { c.style.display = "block"; } }

HTML

<div id="content"> ... <span onclick="viewer_toggleWindow('myWindow1')">Window 1</span> <div id="myWindow1">...</div> <div id="OtherStuff">...</div> </div>

Alla divs är har position: Absolute och OtherStuff är min "main" div där den mesta info finns och den div som kan scrolla. Problemet är att när jag gömmer myWindow1 så återgår OtherStuff till början av scrollningen. Men det går bra att visa den oavsett vart i scrollningen OtherStuff är.

Visa signatur

Desktop: Ryzen 9 3950x | RTX 2060 | 16Gb RAM | 512Gb + 256Gb SSD
NAS: HP Microserver Gen8 | 8GB Ram | 3x2Tb ZFS | FreeNAS
SRV: HP ML350p Gen8 | 64GB Ram | 2x E5-2630v2 | ESXI

Permalänk
Medlem

Det här är ett CSS-problem, inte ett JavaScript-problem.

Har du position relative på #content eller någon annan av föräldrarna? Om du inte har det, är positionen absolut till fönstret och inte föräldern med scrollen.

När du döljer en div kommer storleken på #content förändras och därför kommer #OtherStuff flyttas i förhålande till fönstret.