
В этом разделе вы попрактикуетесь в управлении классами HTML элементов, но уже не с одним классом, а с несколькими одновременно. Задания направлены на то, чтобы вы освоили методы `classList.add()`, `classList.remove()`, `classList.toggle()` и `classList.contains()` применительно к нескольким классам. Это позволит вам более гибко и эффективно управлять стилями и поведением элементов на странице, динамически изменяя их внешний вид и функциональность в зависимости от действий пользователя или состояния приложения. Каждое задание представляет собой практическую задачу, где вам нужно будет дополнить JavaScript код, чтобы добиться желаемого результата. Внимательно читайте описания заданий и используйте подсказки, если возникнут затруднения. Успехов в обучении!
- Модуль 1: Основы выбора элементов
- Выбор элемента по ID.
- Выбор элементов по классу.
- Выбор элементов по тегу.
- Выбор по селектору CSS.
- Выбор по атрибуту.
- Поиск элементов внутри другого элемента.
- Поиск родительского элемента.
- Поиск соседних элементов (предыдущий, следующий).
- Поиск первого и последнего дочернего элемента.
- Поиск всех дочерних элементов.
- Модуль 2: Манипуляция содержимым
- Модуль 3: Работа с атрибутами
- Модуль 4: Управление классами
- Модуль 5: Управление стилями
- Модуль 6: Создание и удаление элементов
- Создание нового элемента.
- Вставка элемента перед другим элементом.
- Вставка элемента после другого элемента.
- Добавление элемента в определенную позицию внутри списка дочерних элементов.
- Удаление элемента из DOM.
- Замена одного элемента другим.
- Перемещение существующего элемента в другое место DOM..
- Очистка содержимого элемента без его удаления.
- Модуль 7: Обработка событий
- Модуль 8: Работа с формами
- Модуль 9: Продвинутые манипуляции
- Модуль 10: Работа с размерами и прокруткой
- Получение размеров элемента.
- Получение позиции элемента относительно окна браузера.
- Получение позиции элемента относительно родительского элемента.
- Управление прокруткой страницы.
- Определение, виден ли элемент в текущей области просмотра.
- Плавная прокрутка к элементу.
- Создание элемента, который фиксируется при прокрутке.
- Модуль 11: Работа с медиа-элементами
- Модуль 12: Практические задания
Добавление нескольких классов
Добавьте элементу с id "element" одновременно два класса: "highlight" и "active". Посмотрите, как изменится стиль элемента после добавления классов.
.highlight { background-color: yellow; } .active { font-weight: bold; }
<div id="element">Этот текст должен стать желтым и жирным.</div>
document.getElementById("element").classList.input__1("highlight", input__2);
Удаление нескольких классов
Удалите у элемента с id "element" классы "highlight" и "initial". Изначально элемент имеет эти классы. Убедитесь, что стили, связанные с этими классами, исчезли.
.highlight { background-color: yellow; } .initial { font-size: 20px; }
<div id="element" class="highlight initial">Этот текст изначально желтый и большого размера.</div>
document.getElementById("element").classList.input__1("highlight", input__2);
Переключение нескольких классов
Переключите (toggle) классы "highlight" и "active" у элемента с id "element". Если классы есть - они должны удалиться, если нет - добавиться. Повторное выполнение кода должно вернуть элемент в исходное состояние.
.highlight { background-color: lightgreen; } .active { color: blue; }
<div id="element">Этот текст изменит цвет фона и цвет текста при переключении классов.</div>
let element = document.getElementById("element");
element.classList.input__1("highlight");
element.classList.input__2("active");
Проверка наличия нескольких классов
Проверьте, есть ли у элемента с id "element" одновременно классы "important" и "bold". Выведите в консоль `true`, если оба класса присутствуют, и `false` в противном случае.
.important { border: 2px solid red; } .bold { font-weight: bold; }
<div id="element" class="important">Этот текст имеет класс important.</div>
let element = document.getElementById("element");
let hasImportant = element.classList.input__1("important");
let hasBold = element.classList.input__2("bold");
console.log(hasImportant input__3 hasBold);
Добавление классов к нескольким элементам
Добавьте классы "listItem" и "styled" всем элементам `<li>` внутри списка с id "list". Измените стиль всех элементов списка.
.listItem { margin-bottom: 5px; } .styled { font-style: italic; color: green; }
<ul id="list">
<li>Пункт 1</li>
<li>Пункт 2</li>
<li>Пункт 3</li>
</ul>
let listItems = document.input__1("#list li");
for (let i = 0; i < listItems.length; i++) {
listItems[i].classList.input__2("listItem", input__3);
}
Условное добавление классов
Если переменная `isActive` равна `true`, добавьте элементу с id "box" классы "active" и "highlight". В противном случае, добавьте класс "inactive".
.active { border: 3px solid green; } .highlight { background-color: lightblue; } .inactive { opacity: 0.5; }
<div id="box">Этот блок изменит стиль в зависимости от значения переменной isActive.</div>
let isActive = input__1;
let boxElement = document.getElementById("box");
if (isActive) {
boxElement.classList.input__2("active", input__3);
} else {
boxElement.classList.input__4("inactive");
}
Удаление и добавление классов одновременно
У элемента с id "item" удалите класс "old" и добавьте классы "new" и "updated" одновременно. Изначально элемент имеет класс "old".
.old { color: gray; } .new { color: orange; } .updated { font-weight: bold; }
<div id="item" class="old">Этот текст изначально серый.</div>
let itemElement = document.getElementById("item");
itemElement.classList.input__1("old");
itemElement.classList.input__2("new", input__3);
Переключение классов для нескольких элементов по условию
Для каждого элемента с классом "card", если его порядковый номер (индекс) четный, переключите классы "even" и "highlight".
.card { border: 1px solid black; padding: 10px; margin-bottom: 5px; } .even { background-color: #f0f0f0; } .highlight { border-color: blue; }
<div class="card">Карточка 1</div>
<div class="card">Карточка 2</div>
<div class="card">Карточка 3</div>
<div class="card">Карточка 4</div>
let cards = document.input__1(".card");
for (let i = 0; i < cards.length; i++) {
if (input__2 % 2 === 0) {
cards[i].classList.input__3("even");
cards[i].classList.input__4("highlight");
}
}
Добавление классов на основе данных атрибута
Для элемента с id "dataElement" получите значение атрибута "data-type". Если значение равно "primary", добавьте классы "primary" и "bold", если "secondary" - добавьте классы "secondary" и "italic".
.primary { background-color: lightblue; } .bold { font-weight: bold; } .secondary { background-color: lightcoral; } .italic { font-style: italic; }
<div id="dataElement" data-type="primary">Этот текст изменит стиль в зависимости от data-type атрибута.</div>
let element = document.getElementById("dataElement");
let dataType = element.input__1("data-type");
if (dataType === "primary") {
element.classList.input__2("primary", input__3);
} else if (dataType === "secondary") {
element.classList.input__4("secondary", input__5);
}