2014-10-28 2 views
1

Safari에서 offset() 문제가 발생하지 않습니다. 다른 모든 브라우저에서 잘 작동하지만 Safari에서 깨지는 것 같습니다. 어떤 제안?offset(). Safari에서 작동하지 않습니다.

$(window).scroll(function(){ 
     collapseNav(); 
    }); 

    function collapseNav() { 
     if ($(".navbar").offset().top > 50) { 
      // code here 
     } else { 
      // code here 
     } 
    } 
+0

확인이 질문 : http://stackoverflow.com/questions/8126648/how-to-get-the-correct-offset-top-value-from-webkit-chrome- 사파리 -와 - jquery. 문제와 관련이 있습니까? –

답변

1

당신은 $ (창)을 사용하여 주위에 작업 발견이

// as of 1.4.2 the mobile safari reports wrong values on offset() 
// http://dev.jquery.com/ticket/6446 
// remove once it's fixed 
if (/webkit.*mobile/i.test(navigator.userAgent)) { 
    (function($) { 
    $.fn.offsetOld = $.fn.offset; 
    $.fn.offset = function() { 
     var result = this.offsetOld(); 
     result.top -= window.scrollY; 
     result.left -= window.scrollX; 
     return result; 
    }; 
    })(jQuery); 
} 
+0

https://gist.github.com/mataspetrikas/431639 –

+0

그것이 저에게 효과적이지 못한 노력에 감사드립니다. 나는 주위에 일을 찾지 못했다. 나는 그것을 아래에 게시 할 것이다. – user3674465

0

같은 .scrollTop을이 문제를 해결할 수 있습니다(). 그래서 다음과 같습니다

$(window).scroll(function(){ 
    collapseNav(); 
}); 

function collapseNav() { 
    if ($(window).scrollTop() > 50) { 
     // code here 
    } else { 
     // code here 
    } 
} 
관련 문제