为什么javascript检测到我还没有滚动到元素的底部?

时间:2017-08-15 18:09:03

标签: javascript

我已经检查了其他帖子以及JS的文档,这应该可行,但是......在我甚至滚动之前,console.log会立即触发。

有什么想法吗?

JSFiddle:https://jsfiddle.net/zfym8g2f/



var element = document.getElementById('plugin');
if (element.scrollHeight - element.scrollTop === element.clientHeight)
    {
        // element is at the end of its scroll, load more content
        console.log('scrolled');
    }

#plugin {
  height: 2000px;
}

<div id="plugin">test</div>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

它会立即触发console.log,因为if语句中的条件为真。

您还需要添加滚动事件侦听器,如下所示:

JSFiddle:https://jsfiddle.net/0383hfrL/

var element = document.getElementById('plugin');

window.addEventListener('scroll', function() {
  if ((window.scrollY + window.innerHeight - element.offsetTop) > element.clientHeight - 150) {
    // element is at the end of its scroll, load more content
        console.log('scrolled');
  }

我希望它有所帮助。