Возвращайте до 18% с пополнений рекламы
  • Все популярные рекламные сети в одном окне
  • Рекламные инструменты — бесплатно
  • Доступ к конструктору лендингов и WebApp-приложений
  • Закрывающие документы точно в срок
ring svg
  1. Главная >
  2. Блог >
  3. Как анимировать медиа запросы?!

Как анимировать медиа запросы?!

Медиа запросы

Повсюду есть респонсив дизайн, и если вы используете фреймворк или пишете медиа-запросы самостоятельно, некоторые элементы на вашей странице обязаны перемещаться и масштабироваться.
Если ваши медиа запросы основаны на размере браузера и он был изменён, то тогда ваши элементы тоже должны стать на место в зависимости от размеров. Добавление анимации к такому функционалу всегда предаст уникальности любому адапитвному веб-сайту. В данной статье речь пойдет о том, как легко можно добавить дополнительные штрихи, анимировав ширину и прозрачность элементов между медиа запросами.

Разметка

В этом простом примере, мы будем использовать div, содержащий 3 маленьких div. Они будут масштабироваться в соответствии с размером окна браузера. HTML довольно прост здесь:

<div class="layout">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>

Теперь, наш основной CSS разместит три коробки внутри основного div, а также, в соответствии c margin справа:

.layout {
    width:960px;
    height:600px;
    background:#b34d6f;
    margin:auto;
}
.box {
    width:300px;
    height:200px;
    margin-right:25px;
    background:#4d77b3;
    display:inline-block;
    margin-top:50px;
}
.box:last-child {
    margin-right:0px;
}

Это наш основной макет, без медиа запросов. Эта разметка не будет адаптироваться, если изменится viewport. Теперь, когда наша основа на месте, давайте перейдем к главному.

Добавление медиа запросов

В нынешние времена, медиа запросы используются довольно часто. Большинство веб-дизайнеров хорошо их понимают, но в случае, если это ваш первый раз, вот вам краткое напоминание: медиа запросы проверяют способности устройства, которое вы используете (ширина, ориентация и разрешение), и они работают на конкретном CSS, если условия указанные для медиа запроса, были выполнены. В нашем примере мы будем использовать два запроса, которые будут проверять, если браузер меньше чем 960px и 660px. Затем мы установим ширину элемента соответственно, мы также скроем последний child div так, чтобы у двух других было больше пространства:

@media screen and (max-width:960px) {
    .layout {
        width: 870px;
    }
    .box {
        width:270px;
    }
}
@media screen and (max-width: 660px) {
    .layout {
        width:570px;
    }
    .box {
        width:170px;
    }
    .box:last-child {
        opacity:0;
    }
}

Это все что нам нужно для медиа запросов. Обратите внимание, очень важно, чтоб этот код был размещен под исходный код CSS, для того чтобы медиа запросы переписали код над ними. Если сейчас проверить ваш файл, то вы увидите, что размер div меняются, и прозрачность последнего child div меняется при изменении размеров окна браузера.

Вы заметите, что для того чтобы скрыть последний child div, мы ставим его прозрачность на 0, вместо display:none. Это потому, что мы хотим иметь возможность оживить атрибуты – у прозрачности есть различные градусы, в то время как у display есть два варианта true или false(и поэтому они не могут быть анимированы).

Добавление анимации

CSS анимация доказала свою удобность при выполнении этих маленьких анимаций, которые мы использовали для работы в jQuery(анимация цвета, ширины и прозрачности).
Так как мы хотим полностью оживить всю страницу, мы будем используем “*” CSS селектор и зададим нашу анимацию. CSS анимации деградируют изящно, но вам также нужно добавить префиксы, для максимальной поддержки всеми браузерами:

*{
    -webkit-transition:all 1s ease;
         -moz-transition:all 1s ease;
               -o-transition:all 1s ease;
                     transition:all 1s ease;
}

blog comments powered by Disqus
Возвращайте до 18% с пополнений рекламы
  • Все популярные рекламные сети в одном окне
  • Рекламные инструменты — бесплатно
  • Доступ к конструктору лендингов и WebApp-приложений
  • Закрывающие документы точно в срок
ring svg
copyright © 2011–2024 Все права защищены
Запрещено любое копирование материалов ресурса без письменного согласия владельца — ООО "Феникс-Маркетинг". ИНН:7725812838, КПП:772501001, ОГРН: 513774619323915280, Москва, ул. Ленинская слобода, д. 19, стр. 1, этаж/пом 3/25

ООО «Феникс-Маркетинг» — IT-компания с многолетним опытом работы, разрабатывающая инновационные решения для управления процессом лидогенерации (пост-клик маркетинг). Разработанное нами технологическое программное решение LPGENERATOR позволяет создавать целевые страницы в визуальном редакторе и управлять заявками (лидами) в CRM-системе в целях проведения эффективных, высококонверсионных рекламных кампаний