Sharikov-T
@Sharikov-T
Junior Fronted Developer

Не работает скрипт добавления класса?

Имеется код:
HTML
<div class="advantages_grid">
    <p class="advantages__text_27px">01 / Более шести лет на рынке</p>
    <p class="advantages__text_27px">02 / Работаем без предоплаты</p>
    <p class="advantages__text_27px">03 / Выполняем работу в установленный срок</p>
    <p class="advantages__text_27px">04 / Используем качественные материалы</p>
    <p class="advantages__text_27px">05 / Не понравится - вернём деньги</p>
    <p class="advantages__text_27px">06 / Обговоренная цена не изменится</p>
</div>
<script src="JS/optimizeAdvantages.js"></script>


JS
function addNotActiveClass() {
	if (window.innerWidth < 600) {
		const paragraphs = document.querySelectorAll('.advantages_grid p');
		for (let i = 0; i < paragraphs.length; i++) {
			paragraphs[i].classList.add('not-active');
		}
	}
}

addNotActiveClass();


Мне нужно при условии, что ширина экрана меньше 600px добавить к элементам p внутри div с классом advantages_grid добавить класс not-activ. Данный скрипт не работает, не знаю в чем проблема. Подскажите пожалуйста, где ошибка
  • Вопрос задан
  • 75 просмотров
Решения вопроса 1
@romkhram
const paragraphs = document.querySelectorAll('.advantages_grid p');
const addNotActiveClass = () => {
  paragraphs.forEach(x => x.classList.add('not-active'))
}
const removeNotActiveClass = () => {
  paragraphs.forEach(x => x.classList.remove('not-active'))
}

const calcWindow = () => {
  if (window.innerWidth < 600) {
    addNotActiveClass()
  } else {
    removeNotActiveClass()
  }
}

document.addEventListener('DOMContentLoaded', () => {
  calcWindow()
});

window.addEventListener("resize", (e) => {
  calcWindow()
});


https://codepen.io/romkhram/pen/wvYWNwL
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Zarron
Front-end developer
Вытащи
<script src="JS/optimizeAdvantages.js"></script>
из div, так нельзя, блок прогрузиться не успел ты ему пытаешься класс пихнуть, вот и не работает
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
SummerWeb Ярославль
от 120 000 до 180 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $
01 июн. 2024, в 14:06
3000 руб./за проект
01 июн. 2024, в 13:54
10000 руб./за проект