2017-08-15 99 views
0

我已经检查了其他文章以及JS的文档,这应该是工作,但是... console.log甚至在我甚至没有滚动之前就会触发。为什么javascript检测到我没有滚动到元素的底部?

任何想法?

的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>

回答

1

立即触发,因为从if语句的条件为真时的console.log。

你也需要添加滚动事件侦听器,像这样:

的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'); 
    } 

我希望它能帮助。

+0

Boom,beastmode。非常感谢!作为一个整体,我仍然在学习很多关于JS的知识,所以像这样的小东西能够帮助我理解它。 – dbrree

+0

我很高兴它帮助! –