2017-08-15 64 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

我很高興它幫助! –