左にメニュー、右側にメインコンテンツというレイアウトで、
左側のメニューにposition:stickyでスクロール時に固定するようにしました。
Edgeで少し速い速度でスクロールすると、メニューの表示ががたつきます。
これを解消したいのですが良い方法はないでしょうか?
やってみたこと
(1)nicescrollを試しましたが変わらなかったです。
https://github.com/inuyaksa/jquery.nicescroll
他にこのようなスクロールを補正してくれるようなプラグインはあるでしょうか?
(2)position:stickyは諦めてjsのsticky-sidebarを使ってみました。
がたつきはだいぶ解消されるのですが一番下までスクロールして上へ戻る時、スムーズにfixしてくれず、一瞬ガタッとした動きになります。
https://abouolia.github.io/sticky-sidebar/
スクロールしている時にガタつかなければposition:stickyが一番きれいに動いてくれるので、できればこちらを使いたいです。
IE11にも対応したいです。
※IE11のposition:stickyについてはstickyfilljsを使います
デモ
仕事の案件はお見せできないため、再現したものになりますが同じ現象が起きます。
https://codepen.io/takayo-nakamura/full/OJVqEyG
その後、試したもの
position:stickyを使ったときのちらつきを解消できないかいろいろ試した結果、解決できていないのですが状況報告になります。
(1)スムーススクロールの無効化
こちらを参考にjsを実装してみましたが変わらなかったです。
https://souken-blog.com/2017/08/25/ie11-smoothscroll
(2)position:fixedで起きるちらつきの対策
transform: translate3d(0,0,0);やz-indexのマイナス値などよく紹介されているものを試しましたが効果なし。
そもそもfixedでも同じ現象は起きるのか、fixedとabsoluteを試したところどちらも発生しませんでした。
stickyの問題のようなのでtransformは関係ないのかなというところです。
今のところEdgeについては諦める方向に向かっていますが解決できるなら解決したいなぁ・・そこだけなんだ・・。
回答1件
あなたの回答
tips
プレビュー