Web ページの垂直スクロールの視差効果を調べていましたが、調査した結果、技術的には視差効果が必要かどうかわかりません。
私が見た限りでは、ほとんどの視差効果は、多くの背景画像が転がり落ちたり、巨大な画像が繰り返されたりして無限にスクロールできることを前提としています。
私がやりたいことは、スクロール バーがページの下部に到達したときに、2 つの DIV の背景を背景画像で埋めることです。背景画像を引き伸ばしたくないことに注意してください。これらの画像の垂直方向の高さがほとんどの人のビューポートよりも大きくなり、垂直方向の位置が変化するという効果が得られると想定しています。ユーザーのスクロールバーが一番上にある場合、一定量の背景が表示され、ユーザーが下にスクロールすると背景のスペースを埋めるために垂直に移動します。
私が達成したい効果の視覚的な説明については、下の画像を参照してください。
ビューポートの高さは、内側の DIV 内のコンテンツの長さによって異なります。
私の問題は、私がやろうとしているのが視差効果ではない場合、それを他に何と呼ぶべきか分からず、それを説明して検索しようとすると、視差効果のチュートリアルを提供するページに戻ってくることです. そのため、用語の不足に悩まされてきました。
スクロールバーの位置に応じて背景の垂直位置を制御する方法を誰かに教えてもらえれば、それは大歓迎です。これが CSS だけで実現できれば素晴らしいのですが、Javascript が必要になると思います。jQuery ソリューションも私にとってはうまくいきます。
アップデート:
コメントで提供された用語を使用して検索した後、外側の DIV に背景画像を取得して、次のコードで必要なことをほぼ実行しました。
$(window).scroll(function () {
var yPos = $("#outerDiv").height() - ($("#outerDIV").height() * ($(window).scrollTop() / $(window).height()));
document.getElementById('outerDIV').style.backgroundPosition="0px " + yPos + "px";
});
スクロールに対して背景画像を正しい方向に移動しますが、欠けているのはその動きをビューポート内に制限することです。ビューポートと DIV のサイズに基づいて適切な比率を取得することは、私の数学的能力を少し超えていることが証明されています。