0

if else ステートメントを機能させるのに苦労しています。

ページが一番上にあったことをページに認識させ、ユーザーが手動で一番上までスクロールした場合はフッターを非表示にしようとしています。私はいくつかのアプローチを検討しましたが、これを機能させることはできません。私のコードは if else 形式で完全に間違っていますか? または("$html").offset().top、ウィンドウが一番上までスクロールされている場合、収集への正しいアプローチではありません。

これがすでに尋ねられている場合は申し訳ありませんが、私の検索では見つかりませんでした。

これが私のコードです:

$(".releases").click(function(){

if ($("html").offset().top) {

    $("#content").load('content.php #releases');    //load the content into the main ajax div
    $("#banner").stop().animate({
        'background-position-x' : '-700px',
        'background-position-y' : '-500px'}, //background position change
        2000, function()
        {$.scrollTo("#content", 3000); //returns to the main page content
    $("#footer").animate({"bottom": "0px"}, 3000); // animate the footer back into view

});

}

else{

$("#footer").animate({"bottom" : "-150px"}, 3000); //animate footer out of view
$('html, body').stop().animate({ scrollTop: 0 }, 3000, function(){  //bring window to the top
    $("#content").load('content.php #releases');    //load the content into the main ajax div
    $("#banner").stop().animate({
        'background-position-x' : '-700px',
        'background-position-y' : '-500px'}, //background position change
        2000, function()
        {$.scrollTo("#content", 3000); //returns to the main page content
    $("#footer").animate({"bottom": "0px"}, 3000); // animate the footer back into view
    });     
});
});
}
4

1 に答える 1

0

jQuery .offset()の定義:

document を基準にして、最初の要素の現在の座標を取得するか、一致した要素のセット内のすべての要素の座標を設定します

取得しているのは要素の絶対座標であり、スクロールしてもそれらは変化しないことを意味します。

あなたが欲しいのは jQuery .scrollTop()です:

一致した要素のセットの最初の要素のスクロール バーの現在の垂直位置を取得するか、一致したすべての要素のスクロール バーの垂直位置を設定します。垂直スクロール位置は、スクロール可能領域の上のビューから隠されているピクセル数と同じです。スクロール バーが一番上にある場合、または要素がスクロールできない場合、この数値は 0 になります。

また、「body」の「html」を変更する必要があります。

if を次のように置き換えます。

if ($("body").scrollTop() === 0) { 
...

そして、それが機能するかどうかを確認してください。setInterval またはデバッグ ボタンを設定し、コンソールにログを記録して、スクロール時に変数がどのように変化するかを確認することをお勧めします。

また、ダニエルが言うように、最後に閉じ括弧がないようです。

于 2013-10-07T21:11:11.703 に答える