2

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

HTML:

<div id='something'>Something! </div>

CSS:

#something { 
    position:relative;
}

查询:

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

这是一个演示: http: //jsfiddle.net/1Blerk/3jacz/4/ (#something 应该和 #headerMenu 一样,但是在滚动之后)

而且我不想改变位置来固定!

我对 JQuery 不是很熟悉,所以我想这只是一些括号或选择器或......

提前致谢!

4

2 回答 2

3

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

未捕获的 ReferenceError: $window 未定义

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

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

此外,您可以将第二个更改为$(window)似乎$(this)更容易理解正在发生的事情。

于 2013-06-30T13:50:29.713 回答
2

你忘了$(window)用括号括起来。

小提琴

于 2013-06-30T13:49:41.600 回答