当我滚动页面/窗口时,我想为指定元素添加一些类,所以我为此使用了偏移量,但它不是在工作 - 有什么问题?非常感谢您的帮助。这是我的代码:
$(window).scroll(function() {
var top_offset = $('body').offset().top;
if ((top_offset >= 40)) {
$('nav').addClass('docked_nav');
}
});
当我滚动页面/窗口时,我想为指定元素添加一些类,所以我为此使用了偏移量,但它不是在工作 - 有什么问题?非常感谢您的帮助。这是我的代码:
$(window).scroll(function() {
var top_offset = $('body').offset().top;
if ((top_offset >= 40)) {
$('nav').addClass('docked_nav');
}
});
您已经在变量中获取了offest 值top_offset
,它现在包含数值并且不是对象。所以要么使用
if (top_offset>= 40) {
$('nav').addClass('docked_nav');
}
或者不使用任何变量
if ($('body').offset().top >= 40) {
$('nav').addClass('docked_nav');
}
Arun Killu 的回答也是需要考虑的
$('.nav').addClass('docked_nav'); if nav is a class or `#nav` if nav is id
当 window 是实际的滚动元素时,我将假设您从顶部获取 body 的偏移量。在这种情况下,您可能希望通过调用如下函数来获取窗口的滚动位置:
function getWindowScrollPos() {
return (window.pageYOffset !== undefined) ? window.pageYOffset :
(document.documentElement ||
document.body.parentNode ||
document.body).scrollTop;
}
如果您试图使一个或多个元素具有粘性(粘在顶部),您可以轻松地使用我创建的这个库来处理这个问题,而不必担心引擎盖下发生了什么:
https://github.com/vhiremath4/Balloon
编辑:
以防万一不清楚,您将要调用该 getWindowScrollPos 函数并将其分配给 top_offset 而不是使用 jQuery 的 offset 方法。