2015-01-16 6 views
1

이미이 문제에 대한 주제가 있지만 모든 해결책이 저에게 효과가 없다는 것을 알고 있습니다.document.body scrollTop는 크롬에서는 0이지만 파이어 폭스에서는 0이 반환됩니다.

사용자가 스크롤 할 때 내 메뉴 상단에 메뉴가 고정되도록하고 싶습니다.

내가 스크립트를 발견하고 내 요구를 위해 적응 :

var win   = $(document.body); 
var fxel  = $('#stickynav'); 
var eloffset = $('#stickynav').offset().top; 
console.log(win.scrollTop()); 

win.scroll(function() { 

    if (eloffset < win.scrollTop()) { 
     console.log('fixed'); 
     fxel.addClass("fixed"); 
    } else { 
     console.log(eloffset + ' != ' + win.scrollTop()); 
     fxel.removeClass("fixed"); 
    } 
}); 

는 파이어 폭스와 IE8에서 일하고있어하지만 난 모든 노력을하지 크롬에서, win.scrollTop()는 항상 0

을 반환 win = $(document), $(window)$('body, html')이며 항상 0을 반환합니다.

누군가 나를 도울 수 있습니까?

+0

이것은 작동해야합니다, 당신은 바이올린을 제공 할 수 있습니까? – Hacketo

+0

나는 그것이 일해야하기 때문에 나는 할 수 없다, 당신이보고 싶다면 여기 웹 사이트의 URL입니다 : http://www.littlebastardparis.com/ – loubradou

+0

음, 거기에 당신이 "위치를 사용하지 않는 이유가있다 : 결정된;"...? – Alhadis

답변

1

저는 이것을 내 프로젝트 중 하나에서 사용하고 있습니다. 효과가있을 수 있습니다.

//window events 
$(window).on('scroll', function(){ 
    that = $(this); 
    if(that.scrollTop()>break_point){ 
     //YOUR CODE 
    } 
}); 

UPDATE는

나는 당신의 문제에 대한 주위에 작업에 근무했습니다. 우선, 문제가 계속되면 다음을 사용하여 시도하십시오. 이미이 페이지를 테스트했는데 정상적으로 작동하는 것 같습니다.

$(window).on('scroll', function(){ 
     that = $(this); 
     //because you are wrapping all contents 
     var offsetTop = Math.abs($('.wrapper-1').offset().top); 

     if(offsetTop>break_point){ 
      //CODE HERE 
     } 
    }); 

정직하게 작동하길 바랍니다. 환호

+0

안녕하세요. , 귀하의 답변을 주셔서 감사하지만 그것은 작동하지 않는 것 : / – loubradou