3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

IEで position: sticky っぽい動作をさせる

Last updated at Posted at 2019-06-15

やりたいこと

  • position: sticky のような、ある程度スクロールしたらヘッダが画面に追従するようなことをしたい
  • 非常に遺憾ながらIE11に対応する必要がある

試したこと(ダメだったパターン)

https://codepen.io/lc-shimazaki/pen/XLXxEX
ある程度のスクロール位置に届いた後、JSで対象オブジェクトを position: fixed にする。
しかし、この場合は何故か画面がガタつくような現象が発生。
よくよく見てみると、fixedにした瞬間に対象オブジェクトに依存するオブジェクトが上にずれていた。
絶対位置のオブジェクトにすることで、依存オブジェクトの座標ズレが発生するぽい。

改善策

https://codepen.io/lc-shimazaki/pen/LKGJXV
依存オブジェクトの座標ズレが発生しないようにダミーオブジェクトを配置すればスムーズにstickyっぽい動作になる。

細かく書いた方が良さそうだけど、コード量も短いし全部CodePenにまとめました。
しかし調べるとIE11で position:sticky が使えるようなライブラリもあるっぽいのでそっち使うのがいいのかな…。
うんこみたいなCSSの書き方なのでご指摘いただけるとありがたいです。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?