@account-6

Как сделать универсальный селектор?

Есть код такого вида (метод Vue):

handleScroll() {
      let obj = document.querySelector('h2');
      let {top,bottom} = obj.getBoundingClientRect();
      let height = document.documentElement.clientHeight;
      this.scrolled = top < height && bottom >0;
}


Проблема в том, что если я хочу таких элементов, скажем, 5 на странице, то мне приходится заново повторять одно и то же, меняя лишь один селектор (элемент, тэг, айди).

Как рефакторить это, чтобы этот код применялся к любым элементам которые я уже выберу благодаря Vue?

Надо что-то по смыслу типо
let obj = document.querySelector('любой элемент которому задам этот метод');
  • Вопрос задан
  • 234 просмотра
Решения вопроса 1
kulakoff
@kulakoff Куратор тега Vue.js
Vue.js developing
Как вариант создать отдельный vue компонент.

Или просто анимировать все элементы, удовлетворяющие условию:

handleScroll() {
      let objList = document.querySelectorAll('h2');
      objList.forEach(function(el) {
        let {top,bottom} = el.getBoundingClientRect();
        let height = document.documentElement.clientHeight;
        if(top < height && bottom > 0) {
          el.classList.add('bounceInLeft');
        } else {
          el.classList.remove('bounceInLeft');
        }
      });
  }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы