スクロール位置でボディの背景位置を変更しようとしています。背景画像には次の設定があります。
background: #fff url(images/bg.png) center 100% no-repeat; background-attachment:fixed;
そのページには高さ 120px のフッターがあります。スクロールがマウスホイールまたはスクロールバーでフッターに達したときに、ボディの背景位置 (y 軸) を変更しようとしています。
編集:
誰かが「固定された」背景の外にフッターを作成する必要がある場合に備えて、マウスホイールとバーの両方で機能するようにしました。
$(window).scroll(function() {
var def_bg_pos = 300;
var footer = $(document).height() - 120; // footer height
if($(window).scrollTop() + $(window).height() > footer) {
var counter = ($(window).scrollTop() + $(window).height()) - footer;
$('body').css('background-position', 'center '+ ((counter * -1) - def_bg_pos) + 'px');
}
else
$('body').css('background-position', 'center -'+def_bg_pos+'px');
});
<body style="background: #fff url(images/bg.png) center -300px no-repeat; background-attachment:fixed;">