Анимация объектов при прокрутке страницы (CSS3 + jQuery)
Karina | 13.11.2014
Сегодня мы покажем вам один из многочисленных способов оригинально украсить сайт, используя CSS3 и jQuery. Подобную плавную анимацию элементов при прокрутке страницы можно встретить в некоторых мобильных приложениях, в лентах новостей и даже на сайтах-визитках. Если включить фантазию, можно найти множество полезных вариантов применения такого эффекта – для фотографий, списка товаров и т. д. Приступим!
Демо Загрузить архив RAR (82 kB)
Обратите внимание
Данная анимация корректно работает в современных браузерах, однако могут возникать проблемы при просмотре страницы в устаревших версиях браузеров. Вы можете посмотреть демо, а также скачать архив с файлами для подробного изучения и работы.
jQuery
Начнем с подключения необходимых библиотек – основного файла и плагина jQuery.appear, с помощью которого мы реализуем появление элемента при его попадании в видимую область браузера. Файл jquery.appear.js
находится в папке с уроком.
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"> </script> <script type="text/javascript" src="js/jquery.appear.js"> </script>
После этого можно приступать к написанию кода. Для того чтобы при появлении на экране объекта (назовем его feed
) срабатывала CSS-анимация, нужно динамически добавлять к нему имя класса (назовем его appeared
), когда он попадает в зону видимости:
<script type='text/javascript'> $(function() { $(document.body).on('appear', '.feed', function(e, $affected) { $(this).addClass("appeared"); }); $('.feed').appear({force_process: true}); }); </script>
CSS
В файле style.css
мы укажем внешний вид и первоначальное состояние объекта, задав ему определенные настройки transform
и спрятав его свойством opacity
с нулевым значением:
.feed { background: url(../images/1.png) center center; width: 350px; height: 405px; box-shadow: 0 1px 2px rgba(0,0,0,0.5); border-radius: 4px 4px; margin: 0 auto 13px; -webkit-transition: all 350ms ease; -moz-transition: all 350ms ease; -o-transition: all 350ms ease; transition: all 350ms ease; -webkit-transform: translate3d(0px, 60px, 0) rotateX(-40deg) scale(1.3, 1.3); -moz-transform: translate3d(0px, 60px, 0) rotateX(-40deg) scale(1.3, 1.3); transform: translate3d(0px, 60px, 0) rotateX(-40deg) scale(1.3, 1.3); opacity: 0; }
И при попадании объекта в зону видимости (appeared
) он будет плавно появляться, принимая следующие значения transform
и opacity
:
.feed.appeared { -webkit-transform: translate3d(0px, 0px, 0px) rotateX(0) scale(1, 1); -moz-transform: translate3d(0px, 0px, 0px) rotateX(0) scale(1, 1); transform: translate3d(0px, 0px, 0px) rotateX(0) scale(1, 1); opacity: 1; }
Вы можете разнообразить и украсить ваш сайт похожей плавной анимацией при прокрутке страницы с помощью CSS3 и jQuery. Мы надеемся, что этот простой урок пригодится вам в работе. Желаем творческих успехов!
-
Подскажите, пожайлуста, как сделать так, чтобы после того, как человек прокрутил страницу и затем вернулся обратно анимация опять срабатывала?
Есть возможность это сделать?
Я очень много подобных вещей встречал на сайтах, но как реализовать не пойму. -
Спасибо!
-
Благодарю!
Комментарии