サイドバーをfixedを使い、追尾させたいです。
jQueryでleft位置をサイドバーに与えてやるのですが、ウィンドウサイズを変更したときに前回取得したoffset.leftがそのまま適応されてしまいます。
ですので、リサイズした時に随時offsetを取得できないかと調べつつコードを書いてみたのですが、うまくいきませんでした。
それが下記のソースです。
js
1$(function(){ 2 3 function fix() { 4 window.onload = function () { 5 6 var Box = $('.sidebar'), 7 offset = Box.offset(); 8 var BoxL = offset.left; 9 var BoxT = offset.top; 10 11 $(window).scroll(function () { 12 if($(window).scrollTop() < offset.top - 20) { 13 fixBox.css({ 14 position: 'absolute', 15 top: 'inherit', 16 left: 'inherit', 17 }); 18 } else { 19 fixBox.css({ 20 position: 'fixed', 21 top: '20px', 22 left: fixBoxL, 23 }); 24 } 25 }); 26 } 27 } 28 29 $(window).on('resize', function() { 30 fix(); 31 }); 32 33 fix(); 34 35});
理想は、ロードした時ではなく、リサイズした瞬間にfixBoxLにoffset.leftの値が入ることです。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。