<MyRusakov.ru />

Программирование на C++ с Нуля до Гуру

Программирование на C++ с Нуля до Гуру

Данный курс научит Вас программировать на языке C++, который, несмотря на свой почтенный возраст, необычайно сильно востребован. Курс состоит из 6 разделов, посмотрев которые и выполнив все упражнения, Вы с нуля освоите этот язык и сможете создавать самые разные проекты любой сложности на C++.

Для закрепления материала из уроков к ним идёт множество упражнений.

Дополнительно к курсу идёт вспомогательная система, которая не даст Вам забросить начатое на полпути.

Также вместе с курсов Вы получаете Бонус "Программирование на C++ в Unreal Engine", в котором Вы научитесь создавать игры на C++ с использованием этого движка.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Зачем Вы изучаете программирование/создание сайтов?

Анимированный loader на градиентах и тенях

Анимированный loader на градиентах и тенях

Как можно получить красивый эффект анимации градиента, если в CSS-коде не используются вообще градиенты? Испытаем данный трюк на loader.

Создание основы для loader

Создадим на HTML блок loader с текстом Loading внутри, разместим блок в центре и укажем размеры для него. Если блоку loader не задавать толщину рамки, то блок будет невидимым. Но я временно установлю рамку, для наглядности. В рабочем коде никаких рамок не будет.

// HTML
<div class="loader">
    <span>Loading</span>
</div>
// CSS
@import url("https://fonts.googleapis.com/css?family=Poppins:100,200,300,400,500,600,700,800,900");
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: "Poppins", sans-serif;
}
body {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    background: #fff;
}
.loader {
    position: relative;
    width: 200px;
    height: 200px;
}


Анимированный loader на градиентах и тенях.

Рисование двух кругов

Физически мы не нарисуем не одного круга. Розовый круг создан с помощью псевдоэлемента before, а синий круг - это тень. Почему мы поставили border-radius: 50% псевдоэлементу, а не настоящему элементу loader? Дело в том, что для эффекта нам нужно 4 круга. Поэтому в данном случае менее затратно использовать оба псевдоэлемента. Их одного псевдоэлемента можно получить два круга, за счет установки тени.

.loader:before{
    content: '';
    position: absolute;
    top: 85px;
    left: 15%;
    width: 70%;
    height: 70%;
    background: #ff3b8d;
    box-shadow: -60px -55px 0px #07b2ff;
    border-radius: 50%;
    // к псевдоэлементу применяется анимация
    animation: animate 5s linear infinite; /*название, время, стиль, бесконечный повтор*/
}


Анимированный loader на градиентах и тенях.

Рисование еще 2-ух кругов

.loader:after{
    content: '';
    position: absolute;
    bottom: 85px;
    left: 15%;
    width: 70%;
    height: 70%;
    background: #8dff08;
    box-shadow: 60px 55px 0px #FFEB3B;
    border-radius: 50%;
    animation: animate 5s linear infinite;
}


Анимированный loader на градиентах и тенях.

Создание анимации

В первом кадре фильтр размывает все круги, а во втором кадре кроме размытия, вся конструкция делает полный оборот. Возникает эффект размытия и вращения, похожий на анимированный градиент.

@keyframes animate{
    0%
    {
        filter: blur(50px) hue-rotate(0deg);
    }
    100%
    {
        filter: blur(50px) hue-rotate(360deg);
    }
}


Анимированный loader на градиентах и тенях.

Оформляем как loader

Теперь нужно показать, что это вообще-то loader, а не просто анимированная градиентная масса. Для этого создадим пятый круг, в центре которого поместим слово Loading.

.loader span{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #fff;
    border-radius: 50%;
    z-index: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    text-transform: uppercase;
    letter-spacing: 5px;
    font-weight: 500;
    font-size: 18px;
    color: rgba(0,0,0,0.1);
}
.loader span:before{
    content: '';
    position: absolute;
    top: 8px;
    left: 8px;
    right: 8px;
    bottom: 8px;
    box-shadow: inset 0px 0px 20px rgba(0,0,0,0.08);
    border-radius: 50%;
}

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



Анимированный loader на градиентах и тенях.

Посмотрите пример на CodePen

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.