Одним из наиболее обсуждаемых направлений веб-дизайна последних лет является эффект прокрутки параллакса. Нравится вам это или нет, он используется многими веб-сайтами. В этом уроке я кратко познакомлю вас с прокруткой параллакса и покажу, как мы можем воспроизвести ее на веб-сайте с помощью плагина 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? Вы когда-нибудь слышали или использовали это?