На одностраничных сайтах часто применяют анимацию появления блоков при прокрутке страницы, создавая динамичность и впечатляющий эффект. На самом деле это очень красиво выглядит, если только без фанатизма, не перезагружая сайт.
В этом обзоре мы рассмотрим jQuery плагин Revealator, который поможет реализовать анимацию блоков самым легким путем. Практически просто подставляя определенные классы элементам, чтобы те, в свою очередь, появлялись в области просмотра браузера с эффектом, закрепленным под тем или иным классом.
Параметры jQuery плагина Revealator
Класс | Описание |
---|---|
revealator-fade | Обычное появление элемента |
revealator-rotateleft | Появление элемента с легким поворотом влево |
revealator-rotateright | Появление элемента с легким поворотом вправо |
revealator-slideleft | Появление элемента слайдом справа на лево |
revealator-slideright | Появление элемента слайдом слева на право |
revealator-slideup | Появление элемента слайдом снизу на вверх |
revealator-zoomin | Появление элемента с эффектом увеличения от большого к меньшему |
revealator-zoomout | Появление элемента с эффектом увеличения от меньшего к большему |
Задержка:
Класс | Описание |
---|---|
revealator-delay1 | Установить задержку эффекта на 100ms |
revealator-delay2 | Установить задержку эффекта на 200ms |
revealator-delay3 | Установить задержку эффекта на 300ms |
... | ... |
revealator-delay19 | Установить задержку эффекта на 1900ms |
revealator-delay20 | Установить задержку эффекта на 2000ms |
Продолжительность:
Класс | Описание |
---|---|
revealator-duration1 | Установить длительность эффекта на 100ms |
revealator-duration2 | Установить длительность эффекта на 200ms |
revealator-duration3 | Установить длительность эффекта на 300ms |
... | ... |
revealator-duration19 | Установить длительность эффекта на 1900ms |
revealator-duration20 | Установить длительность эффекта на 2000ms |
Показывать эффект только один раз
При добавлении класса revealator-once
к элементам, анимация блоков будет происходить лишь один раз. При отсутствии этого класса, анимация будет повторяться при прокрутке вверх и в низ.
Как это работает?
Плагин Revealator включает в себя два основных файла: fm.revealator.jquery.css – дополнительные стили эффектов, fm.revealator.jquery.js – скрипт. И, конечно, необходимо подключить библиотеку jQuery для работоспособности плагина. А также подключим еще один файл стилей, чтобы оформить внешний вид самой страницы демо-просмотра.
Так, все конструкции собрана в одном HTML коде с подключением всеми файлами. В нее входит 10 секций в каждой находится по 4 блока с классами, отвечающими за определенные эффекты анимации появления этих же блоков. В верхней части, между тегами <head></head>
уже подключено 4 файла: два из них относится к плагину, библиотека jQuery, стили оформления страницы.
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Revealator Plugin</title> <link rel="stylesheet" href="style.css"> <link rel="stylesheet" href="fm.revealator.jquery.css"> <script src="js/jquery-1.11.3.min.js"></script> <script src="js/fm.revealator.jquery.js"></script> </head> <body> <div class="section1"> <h1> ↓↓↓ Scroll down ↓↓↓ </h1> </div> <div class="section2"> <div class="label"> revealator-slideup revealator-delay# </div> <div class="revealator-slideup revealator-once"> <img src="img/portfolio-5.jpg"> Imma slide this in </div> <div class="revealator-slideup revealator-delay1 revealator-once"> <img src="img/portfolio-5.jpg"> Imma slide this in </div> <div class="revealator-slideup revealator-delay2 revealator-once"> <img src="img/portfolio-5.jpg"> Imma slide this in </div> <div class="revealator-slideup revealator-delay3 revealator-once"> <img src="img/portfolio-5.jpg"> Imma slide this in </div> </div> <div class="section3"> <div class="label"> revealator-slidedown revealator-once revealator-delay# </div> <div class="revealator-slidedown revealator-once revealator-once"> <img src="img/portfolio-1.jpg"> Imma slide this in </div> <div class="revealator-slidedown revealator-once revealator-delay1 revealator-once"> <img src="img/portfolio-1.jpg"> Imma slide this in </div> <div class="revealator-slidedown revealator-once revealator-delay2 revealator-once"> <img src="img/portfolio-1.jpg"> Imma slide this in </div> <div class="revealator-slidedown revealator-once revealator-delay3 revealator-once"> <img src="img/portfolio-1.jpg"> Imma slide this in </div> </div> <div class="section4"> <div class="label"> revealator-slideleft revealator-delay# </div> <div class="revealator-slideleft revealator-once"> <img src="img/portfolio-2.jpg"> Imma slide this in from right to left </div> <div class="revealator-slideleft revealator-delay2 revealator-once"> <img src="img/portfolio-2.jpg"> Imma slide this in from right to left </div> <div class="revealator-slideleft revealator-delay4 revealator-once"> <img src="img/portfolio-2.jpg"> Imma slide this in from right to left </div> <div class="revealator-slideleft revealator-delay6 revealator-once"> <img src="img/portfolio-2.jpg"> Imma slide this in from right to left </div> </div> <div class="section5"> <div class="label"> revealator-slideright revealator-delay# </div> <div class="revealator-slideright revealator-once"> <img src="img/portfolio-4.jpg"> Imma slide this in from left to right </div> <div class="revealator-slideright revealator-delay2 revealator-once"> <img src="img/portfolio-4.jpg"> Imma slide this in from left to right </div> <div class="revealator-slideright revealator-delay4 revealator-once"> <img src="img/portfolio-4.jpg"> Imma slide this in from left to right </div> <div class="revealator-slideright revealator-delay6 revealator-once"> <img src="img/portfolio-4.jpg"> Imma slide this in from left to right </div> </div> <div class="section6"> <div class="label"> revealator-zoomin revealator-delay# </div> <div class="revealator-zoomin revealator-once"> <img src="img/portfolio-3.jpg"> Imma zoom this in </div> <div class="revealator-zoomin revealator-delay1 revealator-once"> <img src="img/portfolio-3.jpg"> Imma zoom this in </div> <div class="revealator-zoomin revealator-delay2 revealator-once"> <img src="img/portfolio-3.jpg"> Imma zoom this in </div> <div class="revealator-zoomin revealator-delay3 revealator-once"> <img src="img/portfolio-3.jpg"> Imma zoom this in </div> </div> <div class="section7"> <div class="label"> revealator-zoomout revealator-delay# </div> <div class="revealator-zoomout revealator-once"> <img src="img/portfolio-2.jpg"> Imma zoom this out </div> <div class="revealator-zoomout revealator-delay1 revealator-once"> <img src="img/portfolio-2.jpg"> Imma zoom this out </div> <div class="revealator-zoomout revealator-delay2 revealator-once"> <img src="img/portfolio-2.jpg"> Imma zoom this out </div> <div class="revealator-zoomout revealator-delay3 revealator-once"> <img src="img/portfolio-2.jpg"> Imma zoom this out </div> </div> <div class="section8"> <div class="label"> revealator-fade revealator-delay# revealator-duration10 </div> <div class="revealator-fade revealator-duration10 revealator-once"> <img src="img/portfolio-1.jpg"> Imma fade this in </div> <div class="revealator-fade revealator-delay2 revealator-duration10 revealator-once"> <img src="img/portfolio-1.jpg"> Imma fade this in </div> <div class="revealator-fade revealator-delay4 revealator-duration10 revealator-once"> <img src="img/portfolio-1.jpg"> Imma fade this in </div> <div class="revealator-fade revealator-delay6 revealator-duration10 revealator-once"> <img src="img/portfolio-1.jpg"> Imma fade this in </div> </div> <div class="section9"> <div class="label"> revealator-rotateleft revealator-delay# </div> <div class="revealator-rotateleft revealator-once"> <img src="img/portfolio-5.jpg"> Imma rotate this in to the left </div> <div class="revealator-rotateleft revealator-delay1 revealator-once"> <img src="img/portfolio-5.jpg"> Imma rotate this in to the left </div> <div class="revealator-rotateleft revealator-delay2 revealator-once"> <img src="img/portfolio-5.jpg"> Imma rotate this in to the left </div> <div class="revealator-rotateleft revealator-delay3 revealator-once"> <img src="img/portfolio-5.jpg"> Imma rotate this in to the left </div> </div> <div class="section10"> <div class="label"> revealator-rotateright revealator-delay# </div> <div class="revealator-rotateright revealator-once"> <img src="img/portfolio-2.jpg"> Imma slide this in to the right </div> <div class="revealator-rotateright revealator-delay1 revealator-once"> <img src="img/portfolio-2.jpg"> Imma slide this in to the right </div> <div class="revealator-rotateright revealator-delay2 revealator-once"> <img src="img/portfolio-2.jpg"> Imma slide this in to the right </div> <div class="revealator-rotateright revealator-delay3 revealator-once"> <img src="img/portfolio-2.jpg"> Imma slide this in to the right </div> </div> <div class="section"> <div class="label"> End </div> </div> </body> </html>
На WordPress, добавить анимацию блоков, можно с помощью плагина Animate It!. У него также есть куча разных эффектов и при этом, он работает на чистом CSS.
Спасибо огромное за материал.