0

我已经制作了一个可以在计算机上很好地运行的功能。但在手机上,只有在滚动停止时位置才会刷新。这是一个已知问题,我找到了答案,但我没有在我的函数工作中得到它。也许你们中的一个可以帮助我。

我的功能:

$(window).scroll(function () {
    if ($(window).scrollTop() >600) {
        $('#logo').css('position', "fixed");
        $('#logo').css('top', 0);
    }
    else if($(window).scrollTop() < 600) {
        $('#logo').css('position', "relative");
        $('#logo').css('top', 600)
    }
});

在互联网上我发现这个我应该在我的函数中替换:

$('body').on({
    'touchmove': function(e) { 
        console.log($(this).scrollTop()); // Replace this with your code.
    }
});

或这个:

$('body').bind('touchmove', function(e) { 
    console.log($(this).scrollTop()); // Replace this with your code.
});

如果有人可以重写我的函数以便它在手机中顺利运行,那就太好了。

编辑

我简要解释一下这个函数的作用。当您加载我的页面时,会出现带有标题的黑屏。没有其他的。当您向上滚动时,标题应该正常向上移动,直到他到达顶部。当它到达顶部时,它会获得“位置:固定”属性。当您向下滚动时,它再次获得“位置:相对”属性。没有其他事情应该发生。但是在手机上,文本会向上滚动,直到滚动停止(大多数时候您将文本滚动到屏幕外)并在固定位置弹出。但是当它修复时一切都很好并且它就在那里。

4

1 回答 1

1

问题可能出在固定位置而不是scrollTop. 固定定位元素对移动设备不是很友好。它的行为取决于移动设备和操作系统。

更多信息:http ://bradfrostweb.com/blog/mobile/fixed-position/

于 2014-07-23T13:33:23.187 回答