Css эффекты при появлении

doctor Brain

Допустим, Вы хотя бы иногда работаете с видеоредакторами: Windows Movie Maker или Adobe Premiere Pro. В таком случае Вам хорошо известны эффекты постепенного исчезновения (fade out) или появления изображения (fade in). Можно с уверенность сказать, что эти эффекты популярны, потому что они позволяют создавать довольно приятные переходы, которые не раздражают пользователей.

Давайте поработаем над постепенным появлением и исчезновением блоков в HTML-документах.

Полагаю в этом месте Вы скажете: “Постойте. Все уже давно сделано. Одноименные функции: .fadeIn() и .fadeOut() давно существуют в библиотеке jQuery”

Но дайте закончить мысль: мы создадим эффекты постепенного появления и исчезновения блоков с помощью CSS.

Эффект появления блока (fadeIn)

Добавим в CSS-файл код, который позволит изменять состояние блока от прозрачного до полностью непрозрачного:

.fade-in < animation: fadeIn ease 10s; -webkit-animation: fadeIn ease 10s; -moz-animation: fadeIn ease 10s; -o-animation: fadeIn ease 10s; -ms-animation: fadeIn ease 10s; >@keyframes fadeIn < 0% 100% > @-moz-keyframes fadeIn < 0% 100% > @-webkit-keyframes fadeIn < 0% 100% > @-o-keyframes fadeIn < 0% 100% > @-ms-keyframes fadeIn < 0% 100% > 

Для класса .fade-in указано достаточно большое время выполнение — 10 секунд. Это значение носит демонстрационный харктер и должно быть скорректировано, в соответствии с поставленными Вами целями.

Читайте также:  Тег IFRAME, атрибут src

Как Вы заметили, в примере используются префиксы вендоров ( -webkit , -moz , -o , -ms ), которые позволяют нам быть уверенными, что данный эффект будет актуален и для старых версий браузеров различных производителей. По данным статистики, использование префиксов очень раздражает разработчиков. Но, в конце-концов, удобство пользователей для нас в приоритете.

Теперь скорректируем HTML-документ и присвоим класс .fade-in блоку, который выполнит функцию обертки — эффект появления будет работать для всех тегов, размещенных внутри этого блока:

Эффект исчезновения блока (fadeOut)

Чтобы сделать элемент прозрачным, добавим в CSS-файл следующий код:

.fade-out < animation: fadeOut ease 8s; -webkit-animation: fadeOut ease 8s; -moz-animation: fadeOut ease 8s; -o-animation: fadeOut ease 8s; -ms-animation: fadeOut ease 8s; >@keyframes fadeOut < 0% 100% > @-moz-keyframes fadeOut < 0% 100% > @-webkit-keyframes fadeOut < 0% 100% > @-o-keyframes fadeOut < 0% 100% > @-ms-keyframes fadeOut < 0% 100% > 

В данном случае непрозрачность блока меняется от 1 (100%) до 0 (0%), то есть элемент становится абсолютно прозрачным.

Изменения в HTML-документе соответствуют алгоритму, предложенному в первом примере:

Мы еще раз убедились, что можно создавать анимацию HTML-элементов только с помощью CSS без привлечения сторонних библиотек.

Новые публикации

Photo by CHUTTERSNAP on Unsplash

JavaScript: сохраняем страницу в pdf

HTML: Полезные примеры

CSS: Ускоряем загрузку страницы

JavaScript: 5 странностей

JavaScript: конструктор сортировщиков

Категории

О нас

Frontend & Backend. Статьи, обзоры, заметки, код, уроки.

© 2021 dr.Brain .
мир глазами веб-разработчика

Источник

ЗаголовокDwweb.ru

У нас есть основной блок. Который с позиционирован абсолютно(position: absolute;), вы его положения видите после загрузки страницы.

Нас прежде всего интересует:

Механизм работы плавно появляющегося блока:

У нас есть два блока( «h1» и «.begin»), для них будут прописаны свойство появление слева.

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

«.

Для блоков слева выставляем

keyframes для левого блока:

keyframes для правого го блока:

Про остальные стили не вижу никакого смысла писать.

Результат плавного появления блока на примере + скачать

Плавное появление блока.

Давайте сразу приведем пару ссылок, что будем делать и где скачать:

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

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

Убираем все отступы наружные и внутренние :

Скроем колесо прокрутки, если она вдруг появится.

Позиционируем, растягиваем, заполняем.

#img <
position: absolute;
background: url(onload.jpg) center no-repeat;
width: 100%;
height: 100%;
background-size: cover;
/*Устанавливаем время и имя анимации*/
-webkit-animation-duration: 5s;
animation-duration: 5s;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
-webkit-animation-name: fadeIn;
animation-name: fadeIn;
>

Добавляем keyframes, от полной невидимости(opacity: 0;) до полной видимости(opacity: 1;)

Не забываем по блок, который будет у нас появляться

Собираем все вместе и получаем блок появляющийся постепенно:

Локальное плавное появление блока.

Если вам нужен простой код плавного появления блока, то следующий пункт про такой блок.

Как сделать плавное появление блока css

Для третьего варианта применена абсолютно та же схема, что и в предыдущем пункте, блок будет появляться от невидимого состояния в видимое…

Здесь по-моему и объяснять нечего… код намного меньше и проще!

Источник

Как сделать плавное появление блока CSS?

Как сделать плавное появление блока CSS?

В этой статье хочу вам показать два, очень интересных приема работы с CSS3, которые дают возможность сделать плавное появление блока CSS свойствами. Используя данную возможность можно сделать достаточно много интересных вещей для своего сайта. Например, мы можем сделать плавное появление элемента при наведении на какой-либо элемент на странице, или показать элемент через определенный интервал времени не используя при этом никаких скриптов!

Плавное появление блока CSS при наведении

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

    1. Создаем блок, который будет плавно появляться на странице, и блок, который будет по умолчанию скрыт:

Селектор .on-hover:hover+ .hidden-block означает, что при наведении на элемент с классом .on-hover будут применены свойства для элемента .hidden-block. В данном случае мы делаем этот элемент видимым, то есть меняем прозрачность (opacity:1;).

Так как блок .hidden-block не находится внутри .on-hover, то я использую hover с +. В случае если у вас скрытый элемент находится внутри элемента, на который нужно навести указатель мышки, то вам нужно использовать вот такой селектор:
.on-hover:hover .hidden-block

Плавное появление блока CSS с задержкой по времени

Второй вариант реализации плавного появления блока с помощью CSS заключается в использовании правила @keyframes.

Подробно об использовании данного правила вы можете почитать в этой статье:
Создаём CSS-анимацию без плагинов

В случае если нам нужно показать элемент с некоторой задержкой, мы должны сделать следующее:

    1. Создаем блок, который по умолчанию будет полностью прозрачным:

Источник

Как реализовать на css3 плавное появление элемента

CSS3. Я обожаю эту технологию, потому что она позволила делать много новых эффектов, не прибегая к помощи JavaScript-библиотек. В этой статье я расскажу вам о том, как реализовать с помощью css3 плавное появление любого элемента. Я покажу один хороший способ, как это сделать.

Смотрим на примере

Я думаю, лучше рассматривать сразу на примере. Допустим, у нас есть два одинаковых блока. В html разметке я предлагаю обозначить их так:

Каждый элемент получил два стилевых класса. Зачем это нужно? Первым классом мы зададим общие правила внешнего вида, блоки же одинаковые, так что их можно описать совместно. В реальном примере, скорее всего, будет по-другому. Также каждый элемент получил собственный уникальный стилевой класс. Он тоже пригодится.

.block <
font-size: 50px;
width: 200px;
height: 120px;
background: green;
margin-bottom: 30px;
transition: 1s
>

Этими правилами мы прописали обоим блокам одинаковый внешний вид: высоту, ширину, размер шрифта, отступ и зеленый фон. Последнее свойство transition как раз и является относительно новым и входит в версию CSS3 . Оно обозначает задержку, после которой выполняются определенные правила. По сути, именно это дает плавное появление.

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

Как реализовать в css3 плавное появление?

Дальше есть два варианта действий. Допустим, нам нужно пока скрыть второй блок, а при наведении на первый плавно выводить его. Наиболее часто для скрытия элемента применяют правило display: none , но оно не даст именно того, чего нужно – плавного появления. Элемент появиться резко.

Поэтому мы поступим по-другому. Смотрите этот код:

Мы использовали еще одно CSS3-свойство – opacity . Оно задает прозрачность элемента, которая прописывается от 0 (полностью прозрачный) до 1 (полностью непрозрачный) элемент.

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

То есть само изменение стилей происходит при наведении на первый блок, а изменяется непосредственно второй. Благодаря прописанному ранее transition он появится не резко, а плавно, что нам с вами и нужно. Изменяя значение transition можно сделать появление более резким или наоборот еще больше замедлить его.

Вот с такой вот скоростью появляется блок при выставленном значении transition: 1s . Кстати, значение можно задавать и в миллисекундах, если хотите.

Использование на практике

Хорошо, а где это вам может пригодиться в действительности? Например, при разработке выпадающего меню. Как видите, с помощью css3 и плавного появления элементов сегодня можно сделать такую навигацию даже без использования скриптов. А это улучшает производительность вашего интернет-ресурса.

Можно привести и другой пример. Например, чтобы при наведении на кнопку “Обратная связь” появлялась форма, в которую можно записать свое сообщение. Это только то, что я только что придумал, на деле же можно изобрести гораздо более интересных вещей, в которых используются плавные переходы.

Пример использования — плавное появление пояснения к картинке

Давайте рассмотрим такой простой пример. У меня есть картинка и я хочу, чтобы к ней плавно выводилось пояснение. Вот картинка:

Заключим ее в блок и добавим абзац с пояснением:

Остается добавить нужные стили:

.alt-text <
font-size: 13px;
background: rgba(0, 0, 230, 0.6);
color: #fff;
position: absolute;
left: -200px;
top: 0;
padding: 10px 20px;
width: 40%;
box-sizing: border-box;
transition: left 0.3s linear;
>
.transition-block <
position: relative;
width: 400px;
>
.transition-block:hover .alt-text <
top: 0;
left: 0;
>

Как видите, блок с пояснением появляется плавно благодаря заданному свойству transition . В первом примере в этой статье я использовал лишь один параметр этого свойства — время. В этот раз параметров больше:
transition: left 0.3s linear;
top — это название свойства, к которому нужно применить планвный эффект. В этом случае плавность будет применена только к свойству top и больше ни к какому другому.
0.3s — это понятно, время перехода.
linear — функция перехода. Это отдельная и не самая простая тема. К слову, есть еще такие функции: ease-in, ease, ease-out . Попробуйте, наверняка заметите небольшую разницу.

То есть само медленное выдвижение стало возможно благодаря свойству transition , если бы его не было, то надпись появлялась бы резко, что уже смотрится не так круто. Ну а сам абзац с текстом двигался с помощью абсолютного позиционирования. Об этом и других видах позиционирования вы можете прочитать в этой статье.

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

Минуточку вашего внимания: Все мы хотим размещать свои сайты на надежном хостинге. Я проанализировал сотни хостингов и нашел лучший — HostIQ В сети сотни положительных отзывов о нем, средняя оценка пользователей — 4.8 из 5. Пусть вашим сайтам будет хорошо.

Еще материалы по HTML

Источник

Оцените статью