@rovercar

Как сделать плавную прокрутку (без jquery)?

В общем у меня есть статьи по 5 в ряд одинаковой высоты, несколько рядов на странице, как сделать плавную прокрутку без использования jquery? Нужно, чтобы прокручивался за раз только один ряд.
  • Вопрос задан
  • 83 просмотра
Решения вопроса 1
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
jsfiddle.net/vxgpam5w

spoiler
let data = [];
let currentRow = 0;

function getPositions(){
  document.querySelectorAll('.row').forEach(row => {
    let box = row.getBoundingClientRect();
    data.push(box.top + pageYOffset);
  });
}

getPositions();

document.addEventListener('wheel', event => {
  event.preventDefault();
	currentRow += event.deltaY > 0 ? 1 : -1;
  if (currentRow<0) currentRow = 0;
  if (currentRow>data.length-1) currentRow = data.length-1;
  window.scrollTo({
   	top: data[currentRow],
    behavior: 'smooth'
  });
});

window.addEventListener('resize', () => {
	getPositions();
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы