Я тоже не совсем уверен, что вы имеете в виду (так что я извиняюсь перед вами и @ mrtsherman , если его ответ тот, который вы хотите), но я думаю, что вы спрашиваете, как получить параллаксэффект прокрутки.Сайт, на который вы ссылаетесь, использует MooTools
$$("#floaters-0, #floaters-01, #floaters-02, #floaters-1, #floaters-11, #floaters-12, #floaters-2, #floaters-21, #floaters-22, #floaters-3, #floaters-31, #floaters-32").each(function(item) {
item.store('top', parseInt(item.getStyle('top')));
item.store('y', item.getPosition().y);
item.store('friction', parseFloat(item.get("data-friction")));
});
this.addEvent('scroll', verticalParallax);
function verticalParallax(e) {
var windowScrollY = window.getScroll().y;
$$("#floaters-0, #floaters-01, #floaters-02, #floaters-1, #floaters-11, #floaters-12, #floaters-2, #floaters-21, #floaters-22, #floaters-3, #floaters-31, #floaters-32").each(function(item) {
if ((windowScrollY) >= item.getPosition().y)
item.setStyle("top", item.retrieve('top') + (windowScrollY - item.retrieve('y')) * item.retrieve('friction'));
});
};
jQuery
Я переместил его в jQuery (грубым и готовым способом) и воткнул егов JSFiddle здесь http://jsfiddle.net/meloncholy/FhxZ3/1/
$(function ()
{
$(".float").each(function ()
{
var $this = $(this);
$this.data("startTop", $this.offset().top);
});
$(window).scroll(function ()
{
var documentScrollTop = $(document).scrollTop();
$(".float").each(function ()
{
var $this = $(this);
$this.offset({ top: $this.data("startTop") + documentScrollTop * $this.data("friction"), left: $this.offset().left });
});
});
});
CSS
.float { display: block; left: 100px; position: fixed; }
#float-1 { top: 50px; }
#float-2 { top: 400px; }
#float-3 { top: 850px; }
.content { font-size: 48px; position: relative; z-index: 2; }
Код подключается к событию scroll
и корректирует позиции изображений при его запуске,Объем прокрутки контролируется свойством трения, поэтому, установив его на 0.5
, как в примере, они должны двигаться с половиной скорости текста.Оказывается (хотя я думаю, что это очевидно в ретроспективе), важно установить для элементов параллакса значение position: fixed
, иначе вы получите несколько неприятных прыжков.
Как я уже сказал, это немного грубо и готово (в частности, другие сайты часто запускают эффект параллакса только в определенном вертикальном окне), поэтому вы можете захотеть нажать Google для jralery прокрутки параллакса или что-то еще и посмотрите, как кто-то еще сделал это правильно.:)