
В этом блоке заданий вы попрактикуетесь в замене CSS классов элементам веб-страницы с помощью JavaScript. Каждое задание представляет собой небольшую интерактивную задачу, где вам нужно будет дописать JavaScript код, чтобы изменить класс элемента и увидеть результат в реальном времени. Вы научитесь использовать различные методы для работы с классами, такие как `classList.add()`, `classList.remove()` и `classList.replace()`, а также узнаете, как манипулировать атрибутом `className`. Задания помогут вам понять, как динамически управлять стилями элементов на странице, что является ключевым навыком в веб-разработке.
- Модуль 1: Основы выбора элементов
- Выбор элемента по ID.
- Выбор элементов по классу.
- Выбор элементов по тегу.
- Выбор по селектору CSS.
- Выбор по атрибуту.
- Поиск элементов внутри другого элемента.
- Поиск родительского элемента.
- Поиск соседних элементов (предыдущий, следующий).
- Поиск первого и последнего дочернего элемента.
- Поиск всех дочерних элементов.
- Модуль 2: Манипуляция содержимым
- Модуль 3: Работа с атрибутами
- Модуль 4: Управление классами
- Добавление класса элементу.
- Удаление класса у элемента.
- Переключение класса.
- Проверка наличия класса у элемента.
- Замена одного класса другим. Альтернатива: удалить старый, добавить новый..
- Работа с несколькими классами одновременно.
- Модуль 5: Управление стилями
- Модуль 6: Создание и удаление элементов
- Создание нового элемента.
- Вставка элемента перед другим элементом.
- Вставка элемента после другого элемента.
- Добавление элемента в определенную позицию внутри списка дочерних элементов.
- Удаление элемента из DOM.
- Замена одного элемента другим.
- Перемещение существующего элемента в другое место DOM..
- Очистка содержимого элемента без его удаления.
- Модуль 7: Обработка событий
- Модуль 8: Работа с формами
- Модуль 9: Продвинутые манипуляции
- Модуль 10: Работа с размерами и прокруткой
- Получение размеров элемента.
- Получение позиции элемента относительно окна браузера.
- Получение позиции элемента относительно родительского элемента.
- Управление прокруткой страницы.
- Определение, виден ли элемент в текущей области просмотра.
- Плавная прокрутка к элементу.
- Создание элемента, который фиксируется при прокрутке.
- Модуль 11: Работа с медиа-элементами
- Модуль 12: Практические задания
Замена класса для абзаца
Замените класс "initial" на класс "highlighted" у абзаца с идентификатором "myParagraph".
.initial {
color: black;
}
.highlighted {
color: blue;
font-weight: bold;
}
<p id="myParagraph" class="initial">Этот текст имеет класс "initial".</p>
document.input__1("myParagraph").classList.input__2("initial");
document.input__3("myParagraph").classList.input__4("highlighted");
Замена класса у кнопки при клике
Добавьте обработчик событий на кнопку. При клике на кнопку с id "myButton" замените класс "default-button" на класс "active-button".
.default-button {
background-color: lightgray;
padding: 10px 20px;
border: none;
cursor: pointer;
}
.active-button {
background-color: green;
color: white;
padding: 10px 20px;
border: none;
cursor: pointer;
}
<button id="myButton" class="default-button">Нажми меня</button>
const button = document.input__1("myButton");
button.addEventListener("click", function() {
button.classList.input__2("default-button", input__3);
});
Переключение классов для изображения
При клике на изображение с id "myImage" переключайте классы "normal-image" и "zoomed-image". Если класс "normal-image" есть, замените его на "zoomed-image", и наоборот.
.normal-image {
width: 200px;
height: auto;
transition: width 0.3s;
}
.zoomed-image {
width: 300px;
height: auto;
transition: width 0.3s;
}
<img id="myImage" class="normal-image" src="https://naytikurs.ru/assets/uploads/2025/03/3d-modelirovanie-i-vizualizatsiya-test-dlya-spetsialistov-v-trehmernoj-grafike-300x300.png" alt="Изображение">
const image = document.input__1("myImage");
image.addEventListener("click", function() {
image.classList.input__2("zoomed-image");
});
Замена класса у нескольких элементов
Замените класс "item-normal" на "item-highlight" у всех элементов списка `li`.
.item-normal {
padding: 5px;
border-bottom: 1px solid #ccc;
}
.item-highlight {
padding: 10px;
background-color: lightyellow;
border-bottom: 2px solid orange;
}
<ul>
<li class="item-normal">Пункт 1</li>
<li class="item-normal">Пункт 2</li>
<li class="item-normal">Пункт 3</li>
</ul>
const items = document.input__1("li.item-normal");
items.forEach(item => {
item.classList.input__2("item-normal");
item.classList.input__3("item-highlight");
});
Условная замена класса в зависимости от текста
Для абзаца с id "textBlock" проверьте его текстовое содержимое. Если текст содержит слово "ошибка", замените класс "text-normal" на "text-error".
.text-normal {
color: black;
}
.text-error {
color: red;
font-weight: bold;
}
<p id="textBlock" class="text-normal">Это обычный текст.</p>
const textBlock = document.input__1("textBlock");
if (textBlock.textContent.input__2("ошибка")) {
textBlock.classList.input__3("text-normal");
textBlock.classList.input__4("text-error");
}
Замена класса с использованием className
Замените класс "box-default" на "box-highlight" у элемента div с id "myBox", используя свойство `className`.
.box-default {
width: 100px;
height: 100px;
background-color: lightblue;
border: 1px solid blue;
}
.box-highlight {
width: 150px;
height: 150px;
background-color: orange;
border: 2px solid red;
}
<div id="myBox" class="box-default"></div>
const box = document.input__1("myBox");
box.input__2 = input__3;
Добавление и удаление классов по очереди
При клике на кнопку с id "sequenceButton" поочередно добавляйте и удаляйте классы "step-one" и "step-two" у абзаца с id "sequenceText". При первом клике добавьте "step-one", при втором удалите "step-one" и добавьте "step-two", при третьем удалите "step-two" и добавьте "step-one", и так далее.
.step-one {
background-color: lightcoral;
padding: 10px;
}
.step-two {
background-color: lightseagreen;
color: white;
padding: 10px;
}
<button id="sequenceButton">Следующий шаг</button>
<p id="sequenceText">Текст для изменения класса</p>
const button = document.input__1("sequenceButton");
const text = document.input__2("sequenceText");
let step = 1;
button.addEventListener("click", function() {
if (step === 1) {
text.classList.input__3("step-one");
text.classList.input__4("step-two");
step = 2;
} else {
text.classList.input__5("step-two");
text.classList.input__6("step-one");
step = 1;
}
});
Замена класса родительскому элементу
При наведении мыши на кнопку с id "parentButton", замените класс "parent-normal" на "parent-highlight" у ее родительского элемента.
.parent-normal {
padding: 10px;
border: 1px solid black;
}
.parent-highlight {
padding: 20px;
background-color: lightgreen;
border: 2px solid green;
}
<div id="parentDiv" class="parent-normal">
<button id="parentButton">Наведи на меня</button>
</div>
const button = document.input__1("parentButton");
button.addEventListener("mouseover", function() {
const parent = button.input__2;
parent.classList.input__3("parent-normal");
parent.classList.input__4("parent-highlight");
});