我有一个函数我试图写,以使我的侧栏粘。
我有以下,在将div设置为position时工作正常:固定,只有当我向上滚动页面时,我的div类才会更改为position:relative。
我的语法中是否有人发现明显的缺陷?
$(window).scroll(function() {
var scrollTop = $(window).scrollTop(),
divOffset = $('#sidebar').offset().top,
dist = (divOffset - scrollTop);
if (dist > 50) {
$('#sidebar').css({position:"relative",top:""});
} else if (dist < 50) {
$('#sidebar').css({position:"fixed",top:"0px","margin-left":"730px"});
}
});
答案 0 :(得分:1)
这不是if/else
。它是if/else if
,没有默认else
条件。我想你会想要通过使用普通的dist
覆盖50
等于if/else
的情况:
if (dist > 50) {
$('#sidebar').css({position:"relative",top:""});
} else {
$('#sidebar').css({position:"fixed",top:"0px","margin-left":"730px"});
}
其中一个条件无法执行(没有语法错误)。您可以使用alert
或console.log
来确定脚本的哪些部分正在执行。
听起来问题出在其他地方。