2016-07-16 4 views
2

要素があります。スクロールされたときに固定位置にしたいと思います。私はこれをうまくやることができます、私の問題は、どのように固定位置を削除するのですか?移動位置の変数の代わりに定数を作成する

現在、スクロールが要素のオフセットの上端に達したときに要素を固定する位置が見つかりました。問題は、私はもはや要素のオフセットの上にこの番号を取得することはできません、今は固定されているので、スクロールするときに番号が変わります。だから私は定数としてこれを保持することができます、私はconstとvarを使用してみましたが、違い。

scroll = $(window).scrollTop(); 

function tb_fix() { 
    if($('#report_toolbar').length) { 
     const POS = $('#report_toolbar').offset().top; 
     if(scroll >= POS) { 
      $('#report_toolbar').addClass('fixed'); 
      $('#tb_spacer').show(); 
     } else if(scroll < POS && $('#report_toolbar').hasClass('fixed')) { 
      $('#report_toolbar').removeClass('fixed'); 
      $('#tb_spacer').hide(); 
     } 
    } 
} 

答えて

2

#tb_spacerがツールバーの下にあります。これは依然として一定のオフセットを持つ静的な要素になります。試してみよう:

function tb_fix() { 
    if($('#report_toolbar').length) { 
     pos = $('#report_toolbar').offset().top; 
     pos2 = $('#tb_spacer').offset().top; 
     if(scroll >= pos) { 
      $('#report_toolbar').addClass('fixed'); 
      $('#tb_spacer').show(); 
     } 
     if(scroll < pos2 && $('#report_toolbar').hasClass('fixed')) { 
      $('#report_toolbar').removeClass('fixed'); 
      $('#tb_spacer').hide(); 
     } 
    } 
} 
関連する問題