13

ユーザーがスクロールするときに div を移動する必要がありますが、純粋な JavaScript を使用する必要があります。

position: fixed;レイアウトでは機能しません。div の元の位置は、他のものに対する相対位置です。のようなイベントを使用してonscroll、ページが上下に移動したピクセル数を検出し、それに応じて div の位置を変更する簡単な実装はありますか?

div は垂直方向にのみ移動する必要があります。したがって、ページが移動したピクセル数を検出できれば、それを div の位置に加算または減算できます。

4

1 に答える 1

17
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
}
于 2011-04-11T03:00:44.763 に答える