簡単なチュートリアル
参照: http://www.egstudio.biz/easy-parallax-with-jquery/
そのコードを 5/6 要素 (異なるscaling
) に適用し、ユーザーのマウスに基づいて優れた単純な視差効果を作成できます。
Shmiddtyのおかげで、ここに例があります: http://jsfiddle.net/4kG6s/1
「そして、これは@PezCuckowの回答のコードと同じセットアップです」
スケーリングとは、次のようなことを意味します(上から編集)
var strength1 = 5;
var strength2 = 10;
var strength3 = 15;
$("html").mousemove(function(e){
var pageX = e.pageX - ($(window).width() / 2);
var pageY = e.pageY - ($(window).height() / 2);
var newvalueX = ;
var newvalueY = height * pageY * -1;
$('item1').css("background-position", (strength1 / $(window).width() * pageX * -1)+"px "+(strength1 / $(window).height() * pageY * -1)+"px");
$('item2').css("background-position", (strength2 / $(window).width() * pageX * -1)+"px "+(strength2 / $(window).height() * pageY * -1)+"px");
$('item3').css("background-position", (strength3 / $(window).width() * pageX * -1)+"px "+(strength3 / $(window).height() * pageY * -1)+"px");
});
jQuery などのライブラリがないと、視差効果を実装するのはかなり難しくなります。ライブラリで提供される機能を使用するのではなく、すべてのアニメーションを手動で実装する必要があります。
ただし、おおよそのガイドは、背景が異なる速度で移動する非常に貧弱な視差効果を実装する以下のようなものです。
CSS:
#bg1, #bg2, #bg3 {
background-image:url('stars.gif');
height: 100%;
width: 100%;
position: absolute;
left: 100%;
}
HTML:
<div id="bg1"></div>
<div id="bg2"></div>
<div id="bg3"></div>
JS:
while(true) {
document.getElementById('bg1').style.left = (document.getElementById('bg1').style.left) - 4 + 'px';
document.getElementById('bg2').style.left = (document.getElementById('bg2').style.left) - 10 + 'px';
document.getElementById('bg3').style.left = (document.getElementById('bg3').style.left) - 20 + 'px';
}