Задумался о теме для сегодняшней статьи и решил написать дополнение для одной из своих старых статей. Я когда-то уже писал статью - CSS анимация элементов. Там я показал как заставить элементы сайта двигаться и перемещаться на странице. Одни эффекты были разовыми, некоторые циклические и постоянно повторяются, но все они осуществлялись сразу после загрузки страницы. В этой статье хочу показать, как сделать анимацию при прокрутке. Элементы будут совершать анимацию по мере появления на странице во время прокрутки.Прошлая статья Вам пригодится тоже, с нее будете брать сами эффекты, а вот задержка сделается уже с помощью jQuery.
Сейчас на многих сайтах можно встретить такую анимацию и ниже я тоже покажу пример. Лично я применяю такую анимацию при создании посадочных страниц(лендингов). Многие вебмастера активно применяют на своих сайтах и смотрится такая анимация при прокрутке, довольно красиво.
Чтобы сделать такое у себя на сайте, нужно немного потрудится. Если хоть немного понимать, то сложного ничего нет. Разобьем все наши действия на шаги, чтобы не запутаться.
Шаг 1
Как всегда, для того чтобы работала библиотека jQuery, надо в шапке перед закрывающимся head или в подвале перед закрывающимсяbody подключить библиотеку.
Далее нужно подключить скрипт, который будет совершать задержку анимации. Сделать это можно двумя способами. Сразу после библиотеки, в тегах javascript:
<script type="text/javascript">
//Сюда код
</script>
Или создайте файл, например - scriptviewport.js и подключите его.
Код сжат в одну строку, для быстрой загрузки браузером и имеет большую длину, так что будьте внимательны при копировании и убедитесь в том, что скопировали его полностью.
Шаг 3
После подключения скрипта задержки, подключаем еще один маленький скрипт, который задает настройки:
В третей строке указан в скобках класс - elementanm. Этот класс нужно будет присваивать всем блокам и элементам, которым Вы захотите присвоить анимацию. В четвертой строке указан класс - slideRight. Это класс анимации. Чтобы задать нужную анимацию и нужный класс, Вам поможет прошлая статья, о которой я упомянул в самом начале. В нашем случаи это будет выезд вправо.
Если Вы захотите осуществить несколько разных видов анимации для элементов страницы, то код нужно дублировать лишь меняя класс в третей строке ну и класс анимации. Например:
Как упомянул в предыдущем шаге, нужно элементам задать класс elementanm. В HTML разметке примерно будет так:
<div class="elementanm"> <!-- Контент размещается тут --> </div>
<div class="elementanm"> <!-- Контент размещается тут --> </div>
<div class="elementanm"> <!-- Контент размещается тут --> </div>
Если у Вас уже присвоен элементу класс, то просто добавьте через пробел, например:
<div class="class elementanm"> <!-- Контент размещается тут --> </div>
Шаг 5
И последним, что нужно сделать - задать CSS стили. Сначала пропишем стили анимации. Берем их с предыдущей статьи о которой уже упоминал в этой статье. Я беру анимацию - выезд вправо.
Как видите, стили анимации имеют класс slideRight, поэтому, этот класс и прописан в скрипте в шаге №3. Также есть значение 4s - это время анимации и равно 4 секундам. Теперь добавим стили для того, чтобы элемент, сначала был невиден.
.hidden{
opacity:0;
}
.visible{
opacity:1;
}
Трудный путь в пять шагов, преодолен, так что можно посмотреть на результат своего труда. Запутаться можно, но если делать все внимательно, то все получится. Код в статье из примера, так что работает все. Пробуйте применять разные виды анимации, чтобы добиться нужного результата.