Ответ 1
Попробуйте следующее:
document.body.scrollTop === 0
Есть ли способ проверить с помощью javascript, если страница находится в scroll(0,0)
?
Причина в том, что у меня есть полный слайдер страницы, который мне нужно сделать паузой, вторая страница не в начале.
И это может быть необязательно, потому что страница прокручивается вживую, так как у меня есть внутренние ссылки HTML #, которые будут загружать страницу прямо в прокрутку без фактической прокрутки.
Таким образом, проверка должна состоять в том, что страница не наверху, а не прокручивается страница.
Попробуйте следующее:
document.body.scrollTop === 0
Вы можете проверить, равно ли window.scrollY
(количество пикселей, которое окно прокручивалось по вертикали) как 0
. Если вы хотите проверить, было ли окно прокручено до последней, вы можете проверить, равно ли window.scrollX
(количество пикселей, которое окно прокрутилось по горизонтали) равным 0
. Если вы объедините их, окно будет в положении (0,0).
if(window.scrollY==0){
//user scrolled to the top of the page
}
if(window.scrollX==0){
//user scrolled to the leftmost part of the page
}
if(window.scrollY==0&&window.scrollX==0){
//user scrolled to the leftmost part of the top of the page—i.e., they are at position (0, 0)
}
Demo:
html, body{
height: 3000px;
position: relative;
margin: 0;
}
<div style="position: absolute; width: 100%; top: 0; left: 0; right: 0px; background-color: dodgerblue; text-align: center;">
Header
</div>
<button style="position: fixed; right: 0; bottom: 0; display: none;" onClick="window.scroll({top: 0, left: 0, behavior: 'smooth'})">
Back To Top
</button>
<div style="position: absolute; width: 100%; bottom: 0; left: 0; right: 0px; background-color: dodgerblue; text-align: center;">
Footer
</div>
<script>
var goToTop = document.querySelector('button');
window.addEventListener("scroll", function(){
if(window.scrollY==0){
//user is at the top of the page; no need to show the back to top button
goToTop.style.display = "none";
} else {
goToTop.style.display = "block";
}
});
</script>
Я думаю, вы можете получить позицию, используя jQuery $(window).scrollTop();
Обновленный ответ на 2019 год
document.body.scrollTop устарела и больше не работает в Chrome. Лучший способ решить эту проблему - просто рассмотреть все три возможности кросс-браузерного решения.
!window.pageYOffset
Один из этих трех должен работать на всех типах браузеров. Если значение равно 0, вы находитесь в верхней части области просмотра.