offset()。顶部不在Safari中工作

时间:2014-10-28 09:59:36

标签: javascript jquery safari

有问题偏移()。顶部在Safari中不起作用。在所有其他浏览器上工作正常但似乎在Safari中破解。有什么建议吗?

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

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

2 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分:0)

找到一个使用$(window).scrollTop()的工作。所以它看起来像这样:

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

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