@LastGeneral

Как при доскроливании к элементу добавлять класс блоку?

Добавляет класс, но когда скролиться вверх он убирается, как это изменить. Должно просто добавлять класс когда доскроливается к объекту.
function scrollReveal() {
			var revealPoint = 150;
			var revealElement = document.querySelectorAll(".scrollReveal");
			for (var i = 0; i < revealElement.length; i++) {
				var windowHeight = window.innerHeight;
				var revealTop = revealElement[i].getBoundingClientRect().top;
				if (revealTop < windowHeight - revealPoint) {
					revealElement[i].classList.add("animated");
				} else {
					revealElement[i].classList.remove("animated");
				}
			}
		}

		window.addEventListener("scroll", scrollReveal);
		scrollReveal();
  • Вопрос задан
  • 70 просмотров
Решения вопроса 1
@MEDIOFF
Python Developer
Как я понимаю класс animated
function scrollReveal() {
      var revealPoint = 150;
      var revealElement = document.querySelectorAll(".scrollReveal");
      for (var i = 0; i < revealElement.length; i++) {
        var windowHeight = window.innerHeight;
        var revealTop = revealElement[i].getBoundingClientRect().top;
        if (revealTop < windowHeight - revealPoint) {
          revealElement[i].classList.add("animated");
        }
      }
    }

    window.addEventListener("scroll", scrollReveal);
    scrollReveal();


просто убирите блок else,
можно еще удалять eventListener, потому что как я понимю нужда в нем отпадает:

spoiler
function scrollReveal() {
      var revealPoint = 150;
      var revealElement = document.querySelectorAll(".scrollReveal");
      for (var i = 0; i < revealElement.length; i++) {
        var windowHeight = window.innerHeight;
        var revealTop = revealElement[i].getBoundingClientRect().top;
        if (revealTop < windowHeight - revealPoint) {
          revealElement[i].classList.add("animated");
          window.removeEventListener('scroll', scrollReveal)
        }
      }
    }

    window.addEventListener("scroll", scrollReveal);
    scrollReveal();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
28 нояб. 2024, в 05:21
2000 руб./за проект
28 нояб. 2024, в 05:18
500 руб./за проект
28 нояб. 2024, в 03:51
3500 руб./за проект