Я пытаюсь реализовать простую кнопку, которая при нажатии будет прокручивать страницу вверх или вниз на 100vh между моими разделами. Я вижу множество примеров, делающих это с помощью jQuery, но я ищу решение на чистом javascript. Я не знаю, как этого добиться.
Ценю любой совет.
HTML
<section class = "section section-1">
<div class = "btn"></div>
</section>
<section class = "section section-2">
<div class = "btn"></div>
</section>
<section class = "section section-3">
<div class = "btn"></div>
</section>
CSS
.section {
width: 100%;
height: 100vh:
}
Это то, что я придумал до сих пор
for (var s = 0; s < btn.length; s++) {
btn[s].addEventListener('click', function(){
window.scrollBy(0,1000);
});
}



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Есть несколько способов получить размер области просмотра в JavaScript. Используя один из этих способов, вы сможете прокручивать, как вы используете размер области просмотра вместо вашего 1000.
Например, если бы я хотел прокрутить ровно высоту одного окна просмотра с помощью window.innerHeight:
let pageHeight = window.innerHeight;
window.scrollBy(0, pageHeight);
document.querySelectorAll('.btn').forEach(btn => {
btn.addEventListener('click', function() {
let scrollDistance = document.documentElement.clientHeight;
if (btn.className.split(' ').includes('scroll-up')) {
scrollDistance *= -1;
}
window.scrollBy(0, scrollDistance);
});
});body {
margin: 0;
}
.section {
width: 100%;
height: 100vh;
}
.section-1 {
background-color: blue;
}
.section-2 {
background-color: red;
}
.section-3 {
background-color: green;
}<section class = "section section-1">
<div class = "btn scroll-down">V</div>
<div class = "btn scroll-up">^</div>
</section>
<section class = "section section-2">
<div class = "btn scroll-down">V</div>
<div class = "btn scroll-up">^</div>
</section>
<section class = "section section-3">
<div class = "btn scroll-down">V</div>
<div class = "btn scroll-up">^</div>
</section>