Last active
November 27, 2023 04:51
-
-
Save nathansmith/8939548 to your computer and use it in GitHub Desktop.
Check if the user is scrolled to the bottom of the page.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
window.onscroll = function() { | |
var d = document.documentElement; | |
var offset = d.scrollTop + window.innerHeight; | |
var height = d.offsetHeight; | |
console.log('offset = ' + offset); | |
console.log('height = ' + height); | |
if (offset >= height) { | |
console.log('At the bottom'); | |
} | |
}; |
.innerHeight has different values in different browsers. It's not reliable to use .innerHeight for document and window elements.
It also has issues when the user's browser is zoomed in/out and won't work.
$(window).scroll(function() {
if($(window).scrollTop() + $(window).height() >= $(document).height()) {
// do something
}
});
@whitehorse0 jquery, meh
Not working on Safari
FYI scrollTop
on chrome android 80 returns float
Not working on Safari
The following code work for me in safari.
$(window).on("scroll", function() { if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight) { }}
Niceee 👏
But there's a problem with these solutions.
When the page is Zoomed.
The numbers of the height
stays float
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Solution by @the-no-one is more compatable. The original solution won't work on some mobile browsers.