画像を手前は早く、奥は遅く移動
デモを見て頂ければわかると思いますが、やってることは手前の背景画像を早く動かし、奥の画像を遅く動かしているだけです。

html + css
画像は当然ですが2枚以上用意しましょう。
ここでは3枚画像の画像を使用します。
なのでdivを3つ用意し、それぞれに背景画像を指定します。
html
<div id="bg03"> <div id="bg02"> <div id="bg01"> <!-- /#bg01 --></div> <!-- /#bg02 --></div> <!-- /#bg03 --></div>
css
#bg01 {
background: url(bg1.png);
height: 3000px;
}
#bg02 {
background: url(bg2.png);
}
#bg03 {
background: url(bg3.png);
}
画面以上にコンテンツがないとスクロールバーが表示されませんので、仮にheightを設定しておきました。
jQuery
「$(window).scroll」がスクロールしたときに実行されるイベントなので、この中に処理を記述します。
javascript
$(function() {
$(window).scroll(function(){
var y = $(this).scrollTop();
$('#bg01').css('background-position', '0 ' + parseInt( -y / 5 ) + 'px');
$('#bg02').css('background-position', '0 ' + parseInt( -y / 50 ) + 'px');
$('#bg03').css('background-position', '0 ' + parseInt( -y / 200 ) + 'px');
});
});
「scrollTop」でスクロールの位置を取得できますので、この値をそれぞれの「background-position」に入れます。
値をそのまま入れるだけだと、全て同じ速度で移動しますので、それぞれ別の値で割ったりすれば良いんですね。


