如何使这个scrollTop函数移动友好

时间:2014-07-23 13:23:26

标签: javascript jquery mobile scroll touchmove

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

我的职能:

$(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.
});

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

修改

我很快解释这个功能的作用。当您加载我的页面时,会出现带有标题的黑屏。没有其他的。当你向上滚动时,标题应该向上移动,直到他到达顶部。当它到达顶部时,它会得到&#34;位置:固定&#34;属性。当你向下滚动时,它会得到&#34; position:relative&#34;属性再次。别的什么都不应该发生。 但在移动设备上,文本会向上滚动,直到滚动停止(大多数时候您将文本滚出屏幕)并弹出固定位置。但是当它修好了一切都没问题就站在那里。

1 个答案:

答案 0 :(得分:1)

问题可能在固定位置而不是scrollTop。固定定位元素不是非常适合移动设备。 它的行为取决于移动设备和操作系统。

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