Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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 知道自己位置的div,或窗口';什么是滚动位置?_Jquery - Fatal编程技术网

Jquery 知道自己位置的div,或窗口';什么是滚动位置?

Jquery 知道自己位置的div,或窗口';什么是滚动位置?,jquery,Jquery,在jQuery中,如何使DIV保持不变,直到用户向下滚动使其不再可见(此时它将自己的CSS位置设置为“固定”)?这是一个我经常看到的把戏,只是不知道它是怎么做到的 示例:使用$(窗口)进行检查。滚动()窗口的Y位置,当它到达>时,div元素的Y位置(可以使用偏移())可以将css更改为固定 大概是这样的: $(window).scroll(function(e){ var e = $('div').offset(); if ($(window).scrollTop() >

在jQuery中,如何使DIV保持不变,直到用户向下滚动使其不再可见(此时它将自己的CSS位置设置为“固定”)?这是一个我经常看到的把戏,只是不知道它是怎么做到的

示例:

使用
$(窗口)进行检查。滚动()
窗口的Y位置,当它到达>时,div元素的Y位置(可以使用
偏移()
)可以将css更改为固定

大概是这样的:

$(window).scroll(function(e){
    var e = $('div').offset();
    if ($(window).scrollTop() > e.top){
     $('div').css('position','fixed').css('top',0);   
    }else{
    $('div').css('position','static');  
    }


});

示例:

您正在寻找粘性滚动条。看看这个:


以下是一些代码的快速示例:

var standardPosition = $('div').offset().top;

$(window).scroll(function() {
    if ($(this).scrollTop() > standardPosition) $('div').css('position','fixed');
    else $('div').css('position','relative');
});
将起始位置存储在某个位置是很重要的,这样您就可以知道何时已向上滚动到足以将其恢复到它所在的任何位置


请注意,在某些浏览器中(我正在查看Internet Explorer),滚动时滚动事件会不断触发。使用像这样的插件可以防止类似的情况。@devmatt:它并没有阻止它,只是屏蔽了它。这可能与设置超时并在每次触发时清除超时相同。超时时间将是他的插件中的“延迟”。