@Gary_Ihar
JS *овнокодер

Почему не работает .scrollIntoView()?

const sections = [
    document.querySelector(".sector1"),
    document.querySelector(".sector2"),
    document.querySelector(".sector3"),
  ];

  let current = 0;

  window.addEventListener("wheel", function (e) {
    e.deltaY < 0 ? --current : ++current;
    if (current < 0) current = 0;
    else if (current > sections.length - 1) current = sections.length - 1;
    scrollTo(current);
  });

  function scrollTo(a) {
    document.querySelector(`.${sections[a].className}`).scrollIntoView();
  }


делаю скролл по страницам.
Почему не срабатывает scrollIntoView() в данном случае? В хроме работает некорректно.
  • Вопрос задан
  • 589 просмотров
Решения вопроса 1
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
Вот так

document.querySelector(`.${sections[a].className}`)

не делает никогда, т.к. если у элемента появится второй класс, то селектор будет невалидным. Типа
.button active
вместо
.button.active

У вас уже есть ссылка на элемент, сразу у нее и вызывайте scrollIntoView

function scrollTo(a) {
    sections[a].scrollIntoView();
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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