2016-07-16 36 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(); 
     } 
    } 
}