Открыть меню    

Введение в параллакс-скроллинг с использованием Stellar.js

Одним из самых обсуждаемых трендов в веб-дизайне является параллакс-скроллинг. Нравится вам это или нет, но параллакс использует множество веб-сайтов. В этой статье я познакомлю вас с основами параллакс-скроллинга и покажу как можно создать параллакс-скроллинг, используя jQuery плагин Stellar.js.

Что такое параллакс-скроллинг?

Параллакс-скролллинг включает фон, движущийся со скоростью отличной от скорости контента, создавая при прокрутке страницы 3D-эффект. Этот эффект может быть отличным дополнением к любому сайту, но, к сожалению, при злоупотреблении вызывающий раздражение. Время от времени попадаются сайты полностью построенные на этом эффекте и, как правило, опыт работы с такими сайтами не очень располагает. И все потому, что параллакс-эффект обычно анимирует изображения в фоне, при этом полный вес сайта сильно увеличивается и как результат сайт медленно загружается.

Некоторые примеры таких злоупотреблений, на мой взгляд, the Saukoni website that presented the Kinvara 3 и Oakley – I am invincible website, чей все около 20 Мб (раньше было приблизительно 50 Мб!).

Теперь, когда вы имеете представление о том как выглядит этот эффект, давайте посмотрим как мы можем использовать Stellar.js, чтобы воссоздать его.

Что такое Stellar.js

Stellar.js - это jQuery плагин, который позволяет вам легко добавить параллакс-скроллинг эффект к вашему сайту. Несмотря на то что проект больше не поддерживается, плагин по-прежнему стабилен и совместим с последними версиями jQuery; используется разработчиками для своих сайтов. Этот jQuery плагин популярен в реестре jQuery плагинов, и вы, вероятно, уже слышали о нем.

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

Приступая к работе с Stellar.js

Начать работы со Stellar.js довольно просто. Сперва скачайте плагин и подключите его к вашей странице.

HTML

<script src="path/to/jquery/jquery.min.js"></script>
<script src="path/to/jquery.stellar.min.js"></script>

Теперь ваша страница готова к работе с плагином для реализации паралакс-эффекта. Плагин позволяет применить эффект к любому прокручиваемому элементу на странице, например, к объекту window и т.д.. Для этого выбираем элемент при помощи jQuery и затем на нем вызываем метод stellar().

Минимальный код, который использует данную библиотеку для объекта window, показан ниже:

jQuery

$('#someElement').stellar();

Для объекта window библиотека также обеспечивает краткую запись:

jQuery

$.stellar();

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

Если вы хотите увидеть работу плагина Stellar.js по реализации параллакс-эффекта при скроллинге страницы, то взгляните на это.

Настройки

Stellar.js, как и многие другие плагины, хорошо управляем. Фактически вы можете установить несколько параметров и настроить плагин в зависимости от ваших потребностей. Stellar.js позволяет вам установить как общие настройки для всех элементов, так и настройки для каждого элемента в отдельности. Общие настройки передаются методу stellar(); опции для конкретного элемента устанавливаются посредством data-* атрибутов (атрибут data). В этой секции я не буду рассматривать все возможные опции, но вы можете прочитать о них в спецификации.

Первая основная опция определяет направление эффекта. Классический скроллинг эффект основан на прокрутки сверху вниз или наоборот, но вы можете также указать скроллинг слева направо и наоборот, или оба одновременно. Для этого вы можете использовать два булевых свойства horizontalScrolling и verticalScrolling. Для них значением по умолчанию является true.

Другая интересная опция responsive. Обновляет параллакс контент при загрузки страницы и изменении размеров окна. По умолчанию стоит false.

Последнее опцией, которую стоит рассмотреть, является hideDistantElements. Значение по умолчанию этого свойства true и оно указывает на то, что необходимо скрывать параллакс элементы в случае их нахождения за пределами окна просмотра. Если вы не хотите такого поведения, установите эту опцию в false. (примечание от переводчика: честно говоря я так и не понял работает ли эта опция; кто владеет информацией оставляйте комментарии).

Для отдельных элементов наиболее часто используемым свойством является data-stellar-background-ratio. Это свойство принимает положительное число в качестве значение и позволяет изменить скорость эффекта к конкретному элементу. Например, data-stellar-background-ratio= «0.5» означает, что скорость элемента станет равной половине от фактической скорости прокрутки. Если вы хотите использовать этот атрибут со значением меньше 1-цы, документация предлагает установить background-attachment: fixed; (значение fixed делает фоновое изображение элемента неподвижным: фоновое изображение не прокручивается, в отличие от содержимого элемента) в стилях к элементу.

Зная о том, что делает плагин и как его настроить, приступим к рассмотрению действительного примера.

DEMO

В этом разделе мы создадим рабочий пример на основе плагина Stellar.js с рассмотренными выше опциями. Сперва гам необходимо создать разметку. В следующем коде мы создаем 6 блоков текстом.

HTML

<div class="content" id="content1">
    <p>TEXT HERE</p>
</div>
<div class="content" id="content2">
    <p>TEXT HERE</p>
</div>
<div class="content" id="content3" data-stellar-background-ratio="0.5">
    <p>TEXT HERE</p>
</div>
<div class="content" id="content4" data-stellar-background-ratio="0.5">
    <p>TEXT HERE</p>
</div>
<div class="content" id="content5" data-stellar-background-ratio="0.5">
    <p>TEXT HERE</p>
</div>
<div class="content" id="content6" data-stellar-background-ratio="0.5">
    <p>TEXT HERE</p>
</div>

Далее нам необходимо описать CSS с использованием фоновых изображений. Так как для последних 4-х блоков мы используем data-stellar-background-ratio со значением 0.5, воспользуемся объявлением background-attachment: fixed;.

Финальный CSS выглядит так:

CSS

body {
    font-size: 20px;
    color: white;
    text-shadow: 0 1px 0 black, 0 0 5px black;
}
p {
    padding: 0 0.5em;
    margin: 0;
}
.content {
    background-attachment: fixed;
    height: 400px;
}
#content1 {
    background-image: url("http://.jpg");
}
#content2 {
    background-image: url("http://.jpg");
}
#content3 {
    background-image: url("http://.jpg");
}
#content4 {
    background-image: url("http://.jpg");
}
#content5 {
    background-image: url("http://.jpg");
}
#content6 {
    background-image: url("http://.jpg");
}

Наконец, нам потребуется запустить эффект через вызов методы stellar(). В этом примере мы также устанавливаем некоторые общие опции:

Живой пример для вышеописанного кода показан ниже:

Источник

Комментарии к статье