jQuery脚本在台式机上工作,但在iPhone上滞后



我试图在我的网站上实现一个DIV,该网站一旦滚出视口就会遵守浏览器的顶部。我找到了一个很好的脚本,可以很好地在桌面上效果很好。当我在iPhone上进行测试时,我有一个短的滞后,Div滚动持续了大约半秒,然后在所需的位置弹出。有人知道我如何调整该脚本?

这是链接:jsfiddle

感谢您的帮助!

function sticky_relocate() {
            var window_top = $(window).scrollTop();
            var div_top = $('#sticky-anchor').offset().top;
            if (window_top > div_top) {
                $('#sticky').addClass('stick');
                $('#sticky-anchor').height($('#sticky').outerHeight());
            } else {
                $('#sticky').removeClass('stick');
                $('#sticky-anchor').height(0);
            }
        }
        $(function() {
            $(window).scroll(sticky_relocate);
            sticky_relocate();
        });

也许您可以使用setTimeout并在多次调用滚动时清除间隔。这可能会有助于限制调用回调的次数。

$(function() {
  var timer;
  $(window).scroll(function() {
    clearInterval(timer);
    timer = setTimeout(function() {
      sticky_relocate();
    }, 50);
  });
  sticky_relocate();
});

最新更新