jsでパララックススクロールのプログラムを組みました。
このプログラムで対象のオブジェクトのスクロール速度を制御する際、
「縦の動き」は問題なくスムーズにスクロールするのですが、
**「横の動き」になるとパララックススクロールが遅延**します。
原因や改善策がよくわからないので、
何かヒントなどがあれば教えていただけると幸いです。
javascript
1 2$(function(){ 3 var Content = $('.classname') ,//パララックス効果を付けるオブジェクトのクラス 4 Speed = 0.009,//ブラウザのスクロール速度と比較した時の対象オブジェクトの移動速度 5 Offset = Content.offset().top , 6 Height = $(window).height() , 7 Value = 0 , 8 Scroll ; 9 $(window).on('load scroll', function () { 10 Scroll = $(window).scrollTop() ; 11 Value = ((Offset - Scroll ) * -1 + Height) * Speed ; 12 if( Scroll > (Offset - Height) ){//指定したクラスが画面に入ると発動 13 Content.css({bottom: Value + 20 + '%'});//ここで移動方向を指定 14 } 15 }); 16}); 17
下から4行目の
javascript
1Content.css({bottom: Value + 20 + '%'});//ここで移動方向を指定
で、「top」や「bottom」を指定すると縦軸の移動になりますが、
その場合は非常にスムーズにパララックススクロールが実現します。
そして、ここに「left」や「right」を指定した場合横軸の移動になるわけですが、
この時の挙動に遅延が起きます。
縦軸の移動が「スクロールと同時並行で実行される」のに対し、
横軸の移動は「スクロールがストップしたタイミングで差分の移動が実行される」ような挙動になります。
なぜこのような挙動になるのかがよくわかりません。
何かアドバイスをいただけますと幸いです。
あなたの回答
tips
プレビュー