JavaRush /Курсы /Модуль 1: Web Core /Анимации для улучшения UX

Анимации для улучшения UX

Модуль 1: Web Core
12 уровень , 8 лекция
Открыта

9.1 Анимации при наведении (Hover Effects)

Анимации играют важную роль в улучшении пользовательского опыта (UX) на веб-сайтах. Они могут направлять внимание пользователя, обеспечивать обратную связь, улучшать навигацию и делать интерфейсы более интуитивно понятными и приятными для использования. Сейчас мы рассмотрим примеры использования анимаций для улучшения UX.

Пример: Анимация кнопки при наведении

HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Анимация кнопки при наведении</title>
          <style>
            .button {
              padding: 10px 20px;
              background-color: #3498db;
              color: white;
              border: none;
              cursor: pointer;
              transition: background-color 0.3s ease, transform 0.3s ease;
            }

            .button:hover {
              background-color: #2980b9;
              transform: scale(1.1);
            }
          </style>
        </head>
        <body>
          <button class="button">Hover me</button>
        </body>
      </html>
    
  

Объяснение кода:

  • .button: определяет стили для кнопки, включая плавные переходы для изменения фона и масштаба при наведении
  • .button:hover: при наведении курсора цвет фона кнопки меняется, и она немного увеличивается

9.2 Анимации загрузки (Loading Animations)

Анимации загрузки показывают пользователям, что процесс загрузки или обработки данных идет, что помогает уменьшить ощущение ожидания.

Пример: Анимация загрузки

HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Анимация загрузки</title>
          <style>
            .spinner {
              width: 50px;
              height: 50px;
              border: 5px solid #f3f3f3;
              border-top: 5px solid #3498db;
              border-radius: 50%;
              animation: spin 1s linear infinite;
            }

            @keyframes spin {
              0% {
                transform: rotate(0deg);
              }

              100% {
                transform: rotate(360deg);
              }
            }
          </style>
        </head>
        <body>
          <div class="spinner"></div>
        </body>
      </html>
    
  

Объяснение кода:

  • .spinner: определяет стили для спиннера, включая границы и анимацию вращения
  • @keyframes spin: определяет анимацию вращения спиннера от 0 до 360 градусов

9.3 Анимации переходов (Page Transition Animations)

Анимации переходов между страницами или разделами приложения помогают пользователям ориентироваться и создают более плавный опыт взаимодействия.

Пример: Анимация перехода страницы

HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Анимация перехода страницы</title>
          <style>
            .page {
              opacity: 0;
              transform: translateY(20px);
              transition: opacity 0.5s ease, transform 0.5s ease;
            }

            .page.active {
              opacity: 1;
              transform: translateY(0);
            }
          </style>
        </head>
        <body>
          <div class="page">Content of the page</div>
          <script>
            document.addEventListener('DOMContentLoaded', function() {
              document.querySelector('.page').classList.add('active');
            });
          </script>
        </body>
      </html>
    
  

Объяснение кода:

  • .page: определяет стили для страницы, включая начальную непрозрачность и смещение вниз
  • .page.active: при добавлении класса active страница становится полностью видимой и возвращается в исходное положение
  • JavaScript: при загрузке страницы добавляется класс active к элементу .page, инициируя анимацию

9.4 Анимации нажатия (Click Animations)

Анимации при нажатии на элементы могут улучшить обратную связь для пользователей и сделать взаимодействие более увлекательным.

Пример: Анимация нажатия на кнопку

HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Анимация нажатия на кнопку</title>
          <style>
            .button {
              padding: 10px 20px;
              background-color: #e74c3c;
              color: white;
              border: none;
              cursor: pointer;
              transition: transform 0.1s ease;
            }

            .button:active {
              transform: scale(0.95);
            }
          </style>
        </head>
        <body>
          <button class="button">Click me</button>
        </body>
      </html>
    
  

Объяснение кода:

  • .button: определяет стили для кнопки, включая плавный переход для масштаба
  • .button:active: при нажатии на кнопку элемент немного уменьшается, создавая эффект нажатия
1
Задача
Модуль 1: Web Core, 12 уровень, 8 лекция
Недоступна
Анимация наведения
Анимация наведения
1
Задача
Модуль 1: Web Core, 12 уровень, 8 лекция
Недоступна
Анимация нажатия
Анимация нажатия
Комментарии (4)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
No Name Уровень 36
25 мая 2025
+ лекция в копилке
Пётр Уровень 72
1 декабря 2024
Пример 9.3 Анимации переходов (Page Transition Animations) не информативен, как мне кажется
2 марта 2025
причем даже походу лень было написать структуру чтобы самому посмотреть
Андрей Полищук Уровень 23
28 мая 2025
Согласен. В будущем проще было бы изучать JS , если бы тут примеры были бы рабочие, так можно было бы понять, как это работает.