JQuery窗口对象滚动顶部函数

时间:2015-04-08 02:12:33

标签: javascript jquery

我刚刚开始学习javascript和jQuery,我对窗口对象$(window)有疑问。我有这个代码,当它滚动到顶部时,它会在屏幕顶部显示一个div。

$(function () {
    $(window).scroll(function(){
    var window_top = $(window).scrollTop();
    var div_top = $("#sticky-anchor").offset().top;
    if (window_top > div_top) {
        $('#sticky').addClass('stick');
    } else {
        $('#sticky').removeClass('stick');
    }
    });
});

我不明白的是,如果整个屏幕是窗口,那么window_top> div_top?

2 个答案:

答案 0 :(得分:1)

top属性返回当前窗口的最顶层浏览器窗口。

top在您处理框架和处理其他网页打开的窗口时非常有用。

Topmost of current window

红色的地方将始终被视为top!如果您滚动页面,在 RED区域中页面的哪一部分,该部分现在位于window.top

  

因此,如果您的DIV高于top,则window_top > div_top会返回   true否则部分会被执行!

答案 1 :(得分:1)

感谢大家帮我解决问题。在做了几个console.log()之后,试图找出代码背后的逻辑。我弄清楚了。当页面加载且没有滚动时,var window_top = $(window).scrollTop();最初为0。当页面滚动时,值会增加。 var div_top = $("#sticky-anchor").offset().top;的初始值是从<div id="sticky">到顶部的高度。当粘性div偏移顶部时,语句if (window_top > div_top)返回true。