if ($(body).scrollTop() > 120px)
{
document.getElementByID("head").ID = "headfixed"
}
这不起作用,我并不感到惊讶,但我无处可看,帮助我做我想做的事情。我可以得到一些帮助吗?提前谢谢。
答案 0 :(得分:6)
问题:为什么你要使用元素选择器和jQuery的组合,以及“getElementById”?这是我如何重写你的函数....你需要把这个if语句放在一个发生某事的函数中。在这种情况下,它是'当窗口滚动时。
$(window).scroll(function () {
var $this = $(this),
$head = $('#head');
if ($this.scrollTop() > 120) {
$head.addClass('fixed_header');
} else {
$head.removeClass('fixed_header');
}
});
这有意义吗?另外,scrollTop不会偏离像素,但它是一个整数。顺便说一句,只有窗口,这可以进入没有引号的parens ... body,html等......在被选中时需要在它们周围引用。
答案 1 :(得分:1)
我认为您正在寻找的价值是.offset().top
。这将返回$elem
相对于文档顶部的当前位置。
// below: the offset of the body tag to the top of the page
$("body").offset().top
// below: the offset of the element with the id #head to the top of the page
$("#head").offset().top
答案 2 :(得分:1)
我认为滚动顶部返回一个整数值,因此您的比较值应为120而不是120px。
编辑:
此外,您是否收到120px的语法错误,因为它没有用引号括起来?当我在jsfiddle中测试时,我在Firebug中遇到以下错误:
identifier starts immediately after numeric literal
答案 3 :(得分:-1)
你必须确保'if condition'在滚动功能中。
function scroll() {
if ($(body).scrollTop() > 120px)
{
document.getElementByID("head").ID = "headfixed"
}
}