
В этом тренажере вы научитесь создавать простые анимации, изменяя стили HTML-элементов с помощью JavaScript. Вы будете работать с различными свойствами CSS, такими как `width`, `height`, `opacity`, `background-color`, `transform`, и другими. Каждое задание представляет собой интерактивный пример, где вам нужно будет дополнить JavaScript код, чтобы добиться желаемого анимационного эффекта.
- Модуль 1: Основы выбора элементов
- Выбор элемента по ID.
- Выбор элементов по классу.
- Выбор элементов по тегу.
- Выбор по селектору CSS.
- Выбор по атрибуту.
- Поиск элементов внутри другого элемента.
- Поиск родительского элемента.
- Поиск соседних элементов (предыдущий, следующий).
- Поиск первого и последнего дочернего элемента.
- Поиск всех дочерних элементов.
- Модуль 2: Манипуляция содержимым
- Модуль 3: Работа с атрибутами
- Модуль 4: Управление классами
- Модуль 5: Управление стилями
- Изменение inline-стилей элемента.
- Получение вычисленных стилей элемента.
- Изменение видимости элемента.
- Изменение размеров элемента.
- Изменение позиционирования элемента.
- Создание простой анимации через изменение стилей.
- Модуль 6: Создание и удаление элементов
- Создание нового элемента.
- Вставка элемента перед другим элементом.
- Вставка элемента после другого элемента.
- Добавление элемента в определенную позицию внутри списка дочерних элементов.
- Удаление элемента из DOM.
- Замена одного элемента другим.
- Перемещение существующего элемента в другое место DOM..
- Очистка содержимого элемента без его удаления.
- Модуль 7: Обработка событий
- Модуль 8: Работа с формами
- Модуль 9: Продвинутые манипуляции
- Модуль 10: Работа с размерами и прокруткой
- Получение размеров элемента.
- Получение позиции элемента относительно окна браузера.
- Получение позиции элемента относительно родительского элемента.
- Управление прокруткой страницы.
- Определение, виден ли элемент в текущей области просмотра.
- Плавная прокрутка к элементу.
- Создание элемента, который фиксируется при прокрутке.
- Модуль 11: Работа с медиа-элементами
- Модуль 12: Практические задания
Задание 1: Простое перемещение
Переместите квадрат вправо, изменяя его свойство `left`. Квадрат должен сдвинуться на 100 пикселей вправо от своего начального положения.
.square {
width: 50px;
height: 50px;
background-color: red;
position: absolute;
left: 50px;
top: 50px;
}
<div class="square" id="mySquare"></div>
const square = document.input__1("mySquare");
square.style.input__2 = "150px";
Задание 2: Изменение прозрачности
Сделайте квадрат полупрозрачным, изменив его свойство `opacity`. Квадрат должен стать наполовину прозрачным.
.square {
width: 50px;
height: 50px;
background-color: blue;
}
<div class="square" id="mySquare2"></div>
const square2 = document.input__1("mySquare2");
square2.style.input__2 = input__3;
Задание 3: Комбинированная анимация: движение и прозрачность
Переместите квадрат вправо и одновременно сделайте его полупрозрачным. Используйте свойства `left` и `opacity`.
.square {
width: 50px;
height: 50px;
background-color: green;
position: absolute;
left: 50px;
top: 150px;
}
<div class="square" id="mySquare3"></div>
const square3 = document.input__1("mySquare3");
square3.style.input__2 = "200px";
square3.style.input__3 = input__4;
Задание 4: Анимация по клику
Переместите квадрат вправо при клике на кнопку. При каждом клике квадрат должен сдвигаться на 50 пикселей вправо.
.square {
width: 50px;
height: 50px;
background-color: orange;
position: absolute;
left: 50px;
top: 250px;
}
.button {
padding: 10px 20px;
background-color: #eee;
border: 1px solid #ccc;
cursor: pointer;
}
<div class="square" id="mySquare4"></div>
<button id="myButton" class="button">Кликни меня</button>
const square4 = document.input__1("mySquare4");
const button = document.input__2("myButton");
button.addEventListener('click', function() {
let currentLeft = parseInt(square4.style.left) || 50;
square4.style.input__3 = currentLeft + input__4 + "px";
});
Задание 5: Плавное перемещение с setInterval
Плавно переместите квадрат вправо на 200 пикселей, используя `setInterval`. Квадрат должен двигаться постепенно, создавая эффект анимации.
.square {
width: 50px;
height: 50px;
background-color: purple;
position: absolute;
left: 50px;
top: 350px;
}
<div class="square" id="mySquare5"></div>
const square5 = document.input__1("mySquare5");
let currentLeft = 50;
const targetLeft = 250;
const animationInterval = input__2(function() {
if (currentLeft < targetLeft) {
currentLeft++;
square5.style.input__3 = currentLeft + "px";
} else {
input__4(animationInterval);
}
}, input__5);
Задание 6: Плавное появление с setInterval
Плавно увеличьте прозрачность квадрата от 0 до 1, используя `setInterval`. Квадрат должен постепенно становиться видимым.
.square {
width: 50px;
height: 50px;
background-color: teal;
opacity: 0;
}
<div class="square" id="mySquare6"></div>
const square6 = document.input__1("mySquare6");
let currentOpacity = 0;
const targetOpacity = 1;
const fadeInterval = input__2(function() {
if (currentOpacity < targetOpacity) {
currentOpacity += 0.01;
square6.style.input__3 = currentOpacity;
} else {
input__4(fadeInterval);
}
}, input__5);
Задание 7: Анимация масштабирования
Плавно увеличьте размер квадрата в 2 раза, используя `setInterval` и свойство `transform: scale()`. Квадрат должен увеличиваться постепенно.
.square {
width: 50px;
height: 50px;
background-color: gold;
}
<div class="square" id="mySquare7"></div>
const square7 = document.input__1("mySquare7");
let currentScale = 1;
const targetScale = 2;
const scaleInterval = input__2(function() {
if (currentScale < targetScale) {
currentScale += 0.01;
square7.style.transform = `scale(${input__3})`;
} else {
input__4(scaleInterval);
}
}, input__5);
Задание 8: Анимация вращения
Плавно вращайте квадрат на 360 градусов, используя `setInterval` и свойство `transform: rotate()`. Квадрат должен вращаться непрерывно.
.square {
width: 50px;
height: 50px;
background-color: silver;
}
<div class="square" id="mySquare8"></div>
const square8 = document.input__1("mySquare8");
let currentRotation = 0;
const rotationInterval = input__2(function() {
currentRotation += 1;
square8.style.transform = `rotate(${input__3}deg)`;
if (currentRotation >= 360) {
currentRotation = 0; // Для непрерывного вращения
}
}, input__4);