我试图在滚动时计算我的h1标签顶部位置。我在网上找到了这个代码,它似乎对我有用。但是,问题是,然而我在scroll函数中打印了值,我可以得到值。但是,当我将该值分配给我的变量它总是显示0.我不知道它为什么会发生?
var my_offset = 0;
$(window).scroll(function() {
var $h1 = $("h1");
var window_offset = $h1.offset().top - $(window).scrollTop();
my_offset = window_offset;
});
console.log(my_offset);
答案 0 :(得分:3)
您需要将console.log
行放在滚动处理程序中,否则只有在值为0
时才会在加载页面时运行一次。如果要保留var
变量的范围,还应删除scroll
事件处理程序中的my_offset
。试试这个:
var my_offset = 0;
$(window).scroll(function() {
my_offset = $("h1").offset().top - $(window).scrollTop();
console.log(my_offset);
});