2016-11-17 4 views
0

jQueryで助けが必要です!私は使用していますjquery-3.1.1.minjquery.color-2.1.0です。スクロール中にdivの背景を変更する(jQuery)

私は少なくとも「トップ」divと「フッタ」divを持つWebページを取得しました。どちらも固定として設定されています。私が望むもの:両方のdivの背景を下にスクロールすると、背景を変更する必要があります。再度スクロールして元の背景に変更する必要があります。

私は次のjQueryコードを持っています。最初の部分は正常に動作します。下にスクロールすると背景が変わります。私の質問は、私がスクロールアップしたときにそれらを再び変える方法です。

私は以下のコードで 'else'を試しましたが、残念ながらそれは動作しませんでした。誰が助けることができますか? jQueryでうまくいかない

$(document).scroll(function(){ 
    if($(this).scrollTop() > 90){ 
     $(".top").animate({"background-color":"#101010"},'slow'); 
     $(".footer").animate({"background-color":"#101010"},'slow'); 
    }else{ 
     $(".top").animate({"background-color":"rgba(16, 16, 16, 0.8)"},'slow'); 
     $(".footer").animate({"background-color":"rgba(16, 16, 16, 0.8)"},'slow'); 
    } 
}); 
+0

を使用すると、他の二を持っている背景にはわずか80%の不透明度で、同じです。それはあなたがやろうとしていることですか?ブラウザーのコンソールログに出力して、スクロールが呼び出されているかどうか、およびそのスローがelseステートメントになっているかどうかを確認してください。 – fanfavorite

+0

はい、デフォルトでは不透明です。下にスクロールすると#101010に変わりますが、スクロールすると何も起こりません。私は他人がまったく働いているとは思わない。 – derrtyones

+0

あなたは確認しましたか? scrollTopは90を超えるか、またはスクロール機能に全く当たらない。 fiddleJSの例を作成すると、あなたが間違っていることが分かりやすくなります。 – fanfavorite

答えて

0

私は多くの試した後に自分で解決しました。まず、 "else if"ステートメントを使用しました。

if($(this).scrollTop() > 89){ 
    //change backgrounds here 
}else if($(this).scrollTop() < 90){ 
    //change backgrounds back 
} 

これは機能しましたが、大きな遅延がありました。いくつかのグーグル後、私はそれが第二に数回呼ばれていますがわかったので、私はストップ()関数で使用していることを解決:

$(".top").stop().animate({"background-color":"rgba(16, 16, 16, 0.8)"},'slow'); 
関連する問題