Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.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_Css - Fatal编程技术网

如何在使用jquery滚动一段时间后停止div

如何在使用jquery滚动一段时间后停止div,jquery,css,Jquery,Css,我希望div垂直固定在定义的滚动级别上。我试过这个: HTML: JQuery: $(window).scroll(function(){ if ($window.scrollTop() > 50){ $("#something").css({"top": ($(window).scrollTop()) -50 + "px"}); } }); 下面是一个演示: (#某些操作应与#headerMenu相同,但在一些滚动之后) 而我不想改变位置被固定 我对JQ

我希望div垂直固定在定义的滚动级别上。我试过这个:

HTML:

JQuery:

$(window).scroll(function(){
    if ($window.scrollTop() > 50){
        $("#something").css({"top": ($(window).scrollTop()) -50 + "px"});
    }
});
下面是一个演示: (#某些操作应与#headerMenu相同,但在一些滚动之后)

而我不想改变位置被固定

我对JQuery不是很熟悉,所以我猜它只是一些偏执,或者是一个选择器,或者

提前谢谢

您忘记将
$(窗口)
括在括号中


您会注意到,在Javascript控制台中查看时,会出现以下错误:

未捕获引用错误:$未定义窗口

正如@matt ball在上面的评论中所说,为了鼓励良好的代码实践,请在请求他人帮助之前始终查看错误控制台。代码的问题在于没有使用jQuery选择器选择全局
窗口。相反,您选择的是一个不存在的变量。尝试以下方法

$(window).scroll(function(){
    if ($(window).scrollTop() > 50){
        $("#something").css("top", $(window).scrollTop() - 50 + "px");
    } else {
        $("#something").css("top", "0px");
    }
});

此外,如果更容易理解发生了什么,您可以将第二个
$(窗口)
更改为
$(此)

查看浏览器的错误控制台。可能的重复我认为它不是真正的重复,因为我发现的所有其他尝试(包括您上面发布的尝试)正在通过将位置从绝对位置更改为固定位置来解决问题。(但这个问题可能仍然无关紧要,因为我解决这个问题的尝试没有成功,因为缺少括号,也不是因为做了其他事情而不是改变位置)还有一个“else”部分似乎很有用:
else{$(“#something”).css({“top”:0+“px”})}
否则快速向后滚动时div的位置可能会错误。使用if和else部分进行演示:+1 else部分是重要的!谢谢
$(window).scroll(function(){
    if ($window.scrollTop() > 50){
        $("#something").css({"top": ($(window).scrollTop()) -50 + "px"});
    }
});
$(window).scroll(function(){
    if ($(window).scrollTop() > 50){
        $("#something").css("top", $(window).scrollTop() - 50 + "px");
    } else {
        $("#something").css("top", "0px");
    }
});