前提・実現したいこと
jQueryを使用し、ヘッダー、サイドバー、ボックスの高さをそれぞれ取得し、
ボックスのスクロール値が **ボックス > (ヘッダーの高さ + サイドバーの高さ) **
という条件になったらボックスのposition:fixedがsaticに変更される記述を行いました。
これによりボックスの位置固定が解除され、サイドバーの下にボックスがくっつけばいいのですが、
動かしてみたところ、カクつきが発生してしまいました。この現象はどのようにすれば解消が可能でしょうか。
▼実装デモ
https://jsfiddle.net/Aimrook/ukw0zs6h/1/
ソースコード
jQuery
1var header1H = $('header').outerHeight(); //ヘッダーの高さ 2var header2H = $('.header2').outerHeight(true); //ヘッダー2の高さ 3var sidebar = $('.side_1').outerHeight(); //サイドバーの高さ取得 4var box_move = header1H + header2H + sidebar; //取得した高さの合計 5 6$(window).scroll(function() { 7var sidebar_box = $('.side_2').offset().top; //ボックスのスクロール値取得 8 if( sidebar_box > box_move ){ 9 $('.side_2').css('position','static'); 10 } else { 11 $('.side_2').css('position','fixed'); 12 } 13})
お手数ですが、ご教授頂けますでしょうか。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー