2016-07-16 3 views
2

제가 그것이로 스크롤 된 경우 고정 된 위치를 확인하고자하는 소자가있다. 이 문제는 해결할 수 있습니다. 문제는 고정 위치를 어떻게 제거합니까?움직이는 위치 대신 변수 상수를 생성

현재 스크롤이 요소의 오프셋 상단에 도달했을 때 요소를 고정 할 위치를 찾고 있습니다. 문제는이 수정되었습니다로 스크롤 할 때 숫자가 변경, 내가 더 이상 요소의 오프셋 (offset) 상단이 수를 얻을 수있다. 어떻게 상수로 유지할 수 있습니다, 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(); 
     } 
    } 
} 
관련 문제