2014-01-10 3 views
0

사용자가 스크롤 할 때 div를 화면 상단에 고정시키는 코드입니다.고정 된 div 스테이를 수평으로 고정 시키십시오.

그러나 브라우저에서 사용자가 왼쪽 또는 오른쪽으로 스크롤하면 막대는 상단에 고정되어 있지만 스크롤됩니다. 내가 끝내는 내용으로 바를 넣고 싶었습니다. 여기

다음은 jfidddle

인 코드 :

$(function(){ 
    // Check the initial Poistion of the Sticky Header 
    var stickyHeaderTop = $('#stickyheader').offset().top; 

    $(window).scroll(function(){ 
      if($(window).scrollTop() > stickyHeaderTop) { 
        $('#stickyheader').css({position: 'fixed', top: '0px'}); 
        $('#stickyalias').css('display', 'block'); 
      } else { 
        $('#stickyheader').css({position: 'static', top: '0px'}); 
        $('#stickyalias').css('display', 'none'); 
      } 
    }); 
}); 
+0

은 사용하는 브라우저는 무엇입니까? 최신 Chrome에서는 스크롤하는 방식에 관계없이 고정되어 있습니다. – Blazemonger

+1

'position : fixed;'를 사용하면 왼쪽에서 오른쪽으로 스크롤 할 수있는 방향에 상관없이 해당 막대가 뷰포트에 유지됩니다. –

+0

mac의 최신 파이어 폭스도 나를 위해 고정되어 있습니다. – pathfinder

답변

3

의 핵심 부분은 left:-$(window).scrollLeft()

DEMO

$(function() { 
    // Check the initial Poistion of the Sticky Header 
    var stickyHeaderTop = $('#stickyheader').offset().top; 

    $(window).scroll(function() { 
     if ($(window).scrollTop() > stickyHeaderTop) { 
      $('#stickyheader').css({ 
       position: 'fixed', 
       top: '0px', 
       left: -$(window).scrollLeft() 
      }); 
      $('#stickyalias').css('display', 'block'); 
     } else { 
      $('#stickyheader').css({ 
       position: 'static', 
       top: '0px' 
      }); 
      $('#stickyalias').css('display', 'none'); 
     } 
    }); 
}); 
+0

환상적! 고맙습니다! –

0

당신이 왼쪽을 추가하는 시도 유무 : '0 픽셀'는 코드에? 같은 :

$(function(){ 
// Check the initial Poistion of the Sticky Header 
var stickyHeaderTop = $('#stickyheader').offset().top; 

$(window).scroll(function(){ 
     if($(window).scrollTop() > stickyHeaderTop) { 
       $('#stickyheader').css({position: 'fixed', top: '0px', left: '0px'}); 
       $('#stickyalias').css('display', 'block'); 
     } else { 
       $('#stickyheader').css({position: 'static', top: '0px', left: '0px'}); 
       $('#stickyalias').css('display', 'none'); 
     } 
}); 
}); 
+0

이것은 여전히 ​​고정 된 위치로 상단 0에 있고 왼쪽은 0이기 때문에 작동하지 않습니다. –

+0

아, 맞아. 나는 그것에 대해 생각하지 않았다. – user157098