Небольшой обзор новой для меня темы - создание эффекта
на странице сайта. Вместе с вами буду учиться создавать такой эффект и начну с самого простого - Parallax.js.
 1 parallax
Чтобы посмотреть, что примерно мы должны в результате получить, посмотрим на домашнюю страницу этого проекта - Parallax.js. Исходный код скрипта и документация расположена на GitHub - Parallax.js
Кратко о parallax
Что такое  как эффект сам по себе, хорошо видно на самой страничке и расписывать его я не буду. В Интернет есть лучшее и более подробное описание эффекта 1
parallax
. Единственное, что можно сказать по поводу 1
parallax
 - появился он в основном как необходимость, дань моде. Своим существованием практически полностью обязан популярным на сегодняшний день 1
parallax
 и призван скрасить и разнообразить их относительную монотонность.1
landing page
Способов реализации  на сегодня сушествует множество. Но практически все они основаны на одном принципе - изменении скорости прокрутки фонового изображения на странице относительно других объектов на ней (поправьте меня, если я неправ).1
parallax
Одним из преимуществ метода на основе скрипта Parallax.js является то, что в этом случае не требуется библиотеки jQuery. Скрипт может работать и с ней, но ее присутствие совсем необязательно. Получается выгода в весе страницы и скорости ее загрузки в браузере.
Parallax.js - начальная разметка
HTML-разметка для нашего будущего  удивительно простая - это маркированный список 1
parallax
 с идентификатором (имя его произвольное) и элементами списка 1
ul
 (имя класса обязательно и неизменно).1
li
Еще одним обязательным атрибутом для элементов списка  является атрибут 1
li
, у которого значение может меняться в диапазоне от 0 до 1. Чем выше значение в 1, тем выше скорость перемещения объекта на странице.1
data-depth
Внутрь элементов списка помещается изображение, которое будет анимироваться с помощью эффекта .1
parallax
Ниже приведен пример такой разметки:
<ul id="scene">
  <li class="layer" data-depth="0.10">
    <img src="images/one.png" height="100" width="100" alt="Image" />
  </li>
  <li class="layer" data-depth="0.80">
    <img src="images/two.png" height="100" width="100" alt="Image" />
  </li>
  <li class="layer" data-depth="0.20">
    <img src="images/three.png" height="100" width="100" alt="Image" />
  </li>
  <li class="layer" data-depth="0.80">
    <img src="images/four.png" height="100" width="100" alt="Image" />
  </li>
</ul>Parallax.js - стилизация parallax
Произведем небольшую стилизацию нашего будущего  с помощью Sass/Compass. Для элемента 1
parallax
 добавим фоновое изображение, чтобы был лучше виден эффект parallax.1
ul
@import "compass/";
@import "compass/reset";
#scene{
  width: 95%;
  margin: 20px auto 0;
  min-height: 775px;
  background: url(../images/bg.jpg) 0 0 no-repeat;
  img{
    display: inline-block;
    width: 100px;
    height: 100px;
    @include border-radius(50%);
  }
  img[src="images/one.png"]{
    margin: 200px 0 0 200px;
  }
  img[src="images/two.png"]{
    margin: 200px 0 0 1000px;
  }
  img[src="images/three.png"]{
    margin: 500px 0 0 700px;
  }
  img[src="images/four.png"]{
    margin: 600px 0 0 300px;
  }
}Parallax.js - добавляем javascript
Наш  почти готов - осталось “вдохнуть в него жизнь” с помощью Javascript.1
parallax
Тут все просто. Первой строкой подключается файл скрипта Parallax.js. Второй строкой сначала в теле документа отыскивается элемент с идентификатором , который помещается внутрь переменной 1
scene
. Затем создается новый экземпляр 1
scene
 объекта Parallax и ему передается в качестве аргумента эта переменная 1
parallax
.1
scene
Все - смотрим результат:

Достаточно подвигать мышью над фотографией красавчика на заднем плане, чтобы увидеть, как разноцветные кружки перемещаются с разной скоростью.
Мы получили эффект parallax.
Ниже приведен полный код HTML и CSS рассмотренного нами примера:
<ul id="scene">
  <li class="layer" data-depth="0.10">
    <img src="images/one.png" height="100" width="100" alt="Image"
  </li>
  <li class="layer" data-depth="0.80">
    <img src="images/two.png" height="100" width="100" alt="Image"
  </li>
  <li class="layer" data-depth="0.20">
    <img src="images/three.png" height="100" width="100" alt="Image"
  </li>
  <li class="layer" data-depth="0.80">
    <img src="images/four.png" height="100" width="100" alt="Image"
  </li>
</ul><!-- scripts -->@import "compass";
@import "compass/reset";
scene{
width: 95%;
 margin: 20px auto 0;
 min-height: 775px;
 background: url(../images/bg.jpg) 0 0 no-repeat;
 img{
 display: inline-block;
 width: 100px;
 height: 100px;
 @include border-radius(50%);
 }
 img[src="images/one.png"]{
 margin: 200px 0 0 200px;
 }
 img[src="images/two.png"]{
 margin: 200px 0 0 1000px;
 }
 img[src="images/three.png"]{
 margin: 500px 0 0 700px;
 }
 img[src="images/four.png"]{
 margin: 600px 0 0 300px;
 }
}Полный исходный код примера можно посмотреть на GitHub - Parallax.js