Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 在某一点停止滚动_Jquery - Fatal编程技术网

Jquery 在某一点停止滚动

Jquery 在某一点停止滚动,jquery,Jquery,我正试图复制类似的东西 向下滚动时,div将与您一起滚动(position:fixed),直到到达某个点,然后停止(position:absolute),当您继续向下滚动时,它将保留页面上的该位置(250px),直到您向上滚动以再次拾取它 现在,我的小提琴除了不保留它“掉下来”的位置之外,什么都可以做,相反,它会回到原来的位置 想法?我做了如下更改: if (y >= socialTop & y <= 150) { $('#static-social').addCl

我正试图复制类似的东西

向下滚动时,div将与您一起滚动(
position:fixed
),直到到达某个点,然后停止(
position:absolute
),当您继续向下滚动时,它将保留页面上的该位置(
250px
),直到您向上滚动以再次拾取它

现在,我的小提琴除了不保留它“掉下来”的位置之外,什么都可以做,相反,它会回到原来的位置


想法?

我做了如下更改:

if (y >= socialTop & y <= 150) {
    $('#static-social').addClass('fixed');
} else {
    $('#static-social').removeClass('fixed');
}

如果(y>=socialTop&y=socialTop&y您需要计算窗口的scrollTop值,然后将其应用为top值并将位置设置为绝对值

$('element').css({
    'top': $(window).scrollTop(),
    'position': 'absolute'
});
当您保持滚动时,scrollTop值将更改,因此您只能执行一次。请使用变量跟踪元素的状态。据我所知,有三种:

  • 相对的
  • 固定的
  • 绝对的
  • 使用此变量,您还可以通过仅在需要时设置类来减少浏览器的压力。例如:

    if( y > 100 && pos != 'fixed' ){
    
        pos = 'fixed';
    
        $('element').addClass('fixed');
    
    }else if( y > 100 && pos != 'relative' ){
    
        pos = 'relative';
    
        $('element').addClass('relative');
    
    }
    

    希望这能有所帮助:)

    这是一种非常缓慢而密集的做事方式。您基本上是在用javascript替换浏览器的原生位置:固定功能。让我想起了我们为ie6做这件事的时候。
    if( y > 100 && pos != 'fixed' ){
    
        pos = 'fixed';
    
        $('element').addClass('fixed');
    
    }else if( y > 100 && pos != 'relative' ){
    
        pos = 'relative';
    
        $('element').addClass('relative');
    
    }