Статьи

Введение в Parallax Scrolling с использованием Stellar.js

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

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

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

Некоторыми примерами такого злоупотребления, на мой взгляд, являются веб-сайт Saukoni, представляющий Kinvara 3 , и известный Oakley — я непобедимый веб-сайт, чей вес составляет ~ 20 МБ (ранее это было ~ 50 МБ !).

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

Что такое Stellar.js?

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

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

Начало работы с Stellar.js

Начать работу с Stellar.js очень просто. Первый шаг — скачать плагин и включить его на свою страницу. Вы можете получить Stellar.js, посетив его репозиторий GitHub или через Bower. Если вы хотите использовать Bower, вы должны набрать команду:

bower install jquery.stellar 

После того как вы загрузили его, вы должны включить Stellar.js на свою страницу, используя обычный элемент script после того как вы включили jQuery, как показано ниже:

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

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

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

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

Для объекта window библиотека также предоставляет удобное сокращение, показанное ниже:

 $.stellar(); 

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

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

Параметры

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

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

Еще один интересный вариант — responsive . Он используется для указания необходимости обновления содержимого параллакса при resize события load и resize объекта window . Значением по умолчанию является false .

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

Единственная опция для каждого элемента, которую я хочу охватить, потому что она часто используется, это data-stellar-background-ratio . Последний принимает положительное число в качестве значения и позволяет изменять скорость воздействия на элемент, к которому он применяется. Например, data-stellar-background-ratio="0.5" означает изменение скорости до значения, равного половине естественной скорости прокрутки. Если вы хотите использовать этот атрибут со значениями ниже 1, документация предлагает установить background-attachment: fixed; в стиле элемента.

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

демонстрация

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

 <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> 

Имея этот HTML-код, нам нужно написать немного CSS для определения используемых фоновых изображений. В нашей демонстрации мы будем использовать три изображения, которые повторяются два раза каждое. Поскольку мы будем использовать атрибуты data-stellar-background-ratio в последних трех div , мы также добавим 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://www.tamperlock.com/blog/wp-content/uploads/2014/08/london-england.jpg"); } #content2 { background-image: url("http://ocdn.eu/images/pulscms/ZjU7MDQsMCwzMiwzODQsMWZhOzA2LDMyMCwxYzI_/1eb29a70dabd0994cdefaad01ca3c884.jpg"); } #content3 { background-image: url("http://www.zeus.aegee.org/magazine/wp-content/uploads/napoli-golfo-vesuvio.jpg"); } #content4 { background-image: url("http://www.tamperlock.com/blog/wp-content/uploads/2014/08/london-england.jpg"); } #content5 { background-image: url("http://ocdn.eu/images/pulscms/ZjU7MDQsMCwzMiwzODQsMWZhOzA2LDMyMCwxYzI_/1eb29a70dabd0994cdefaad01ca3c884.jpg"); } #content6 { background-image: url("http://www.zeus.aegee.org/magazine/wp-content/uploads/napoli-golfo-vesuvio.jpg"); } 

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

 $.stellar({ horizontalScrolling: false, responsive: true }); 

Демонстрационная версия предыдущего кода показана ниже и также доступна в виде JSFiddle .

Вывод

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

Что вы думаете о Stellar.js? Вы когда-нибудь слышали или использовали это?