【发布时间】:2011-10-15 19:10:05
【问题描述】:
我在页面顶部说了一个 30px 的标题,它已经在固定的位置。我有一个离标题大约 50 像素的 div 框。所以它距离我的浏览器顶部 80 像素。我正在尝试创建一个 jquery 事件,该 div 框将在向下滚动时保持原位,直到它到达我的标题底部,然后它将是一个固定位置。
我遇到的问题是,当我使用 .scrollTop() 时,它会触及浏览器的顶部而不是标题的底部,然后它会变成固定位置。我试过 .scrollTop(30),但它只是让我的页面在页面开始时下降 30px,它不会让我滚动到任何地方,它只会抖动回 30px。
如果有人可以帮我修改它,这是我现在的 jquery 函数吗?
谢谢!
$(function() {
var a = function() {
var b = $(window).scrollTop();
//I've tried $(window).scrollTop() + "30px"; and $(window).scrollTop(30);
var d = $("#notification-anchor").offset().top;
var c = $("#notification");
if (b > d) {
c.css({position:"fixed",top:"30px"});
} else {
if(b<=d){
c.css({position:"relative",top:"0px"});
}
}
};
$(window).scroll(a);a()
});
【问题讨论】:
-
b = $(window).scrollTop() + 30怎么样? -
呵呵,这很容易解决!谢谢
-
请注意:在 javascript 中,所有被引号包围的内容都是字符串,因此将其添加到数字将导致:
123 + "30px" = "12330px"
标签: jquery css function scroll position