Jak mohu přesunout div při posouvání?

Když uživatel roluje, musím přesunout div, ale potřebuji použít čistý JavaScript.

position: fixed; nebude fungovat s rozložením. Původní poloha div je relativní k něčemu jinému. Existuje jednoduchá implementace pomocí události jako onscroll , abyste zjistili, o kolik pixelů se stránka posunula nahoru nebo dolů, a podle toho změnila polohu prvku div?

Div se musí pohybovat pouze vertikálně. Takže pokud dokážu zjistit, o kolik pixelů se stránka posunula, mohu to jednoduše přidat nebo odečíst k umístění div.

Odpověď

window.onscroll = function (e) {
  var vertical_position = 0;
  if (pageYOffset)//usual
    vertical_position = pageYOffset;
  else if (document.documentElement.clientHeight)//ie
    vertical_position = document.documentElement.scrollTop;
  else if (document.body)//ie quirks
    vertical_position = document.body.scrollTop;

  var your_div = document.getElementById('some_div');
  your_div.style.top = (vertical_position + 200) + 'px';//200 is arbitrary.. just to show you could now position it how you want
}