在滚动功能上,它使用$(窗口)而不是$(文档),为什么?

时间:2016-12-09 02:44:15

标签: javascript jquery html css

我正在开发一个功能,一旦它到达元素我必须隐藏粘性页脚 - > #line-before-related-article。 当我使用$(document)时,粘性页脚会在我开始向下滚动时消失,这不是我想要的。

当我使用$(window)时,粘性页脚会在到达#line-before-related-article之前消失,这几乎是我需要的。我希望粘性页脚只有在到达div且标识为#line-before-related-article时才会消失

$(window).scroll(function() {
    if ($(this).scrollTop() + $(this).height() >= $('#line-before-related-article').position().top) {
        console.log(console.log($('#line-before-related-article').position().top))
        $('.sticky-footer').hide();
    }
});

我认为一旦我的功能正常使用$(document),我的问题就会得到解决。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

window对象带有scroll属性并触发有关浏览器的相应事件。正如您在其名称上看到的那样,文档对象从顶部到底部引用DOM元素。 滚动浏览器中的内容不会触发DOM对象上的事件!

您必须通过 CSS

来启用滚动功能

这是jquery网站的解释: https://api.jquery.com/scroll/

  

当用户滚动到元素中的其他位置时,滚动事件将发送到元素。它适用于窗口对象,也适用于可滚动框架和元素,其中溢出CSS属性设置为滚动(或当元素的显式高度或宽度小于其内容的高度或宽度时自动)。

当你的元素没有滚动功能时,它不会带有滚动事件功能。 你必须处理CSS代码才能启用滚动事件。