2017-07-05 7 views
0

スクロール中にdivを表示し、別のdivを同時に削除する必要があります。 私はこのコードを試して、これは私が期待したとおりに動作しています。問題は、上にスクロールすると、削除されたクラスを表示し、現在のクラスを隠す必要があることです。 (これと反対側)スクロールダウン中にクラスを表示/削除する

これは私のコードです。

$(window).scroll(function() {  
    var scroll = $(window).scrollTop(); 
    if (scroll >= 0) { 
    $(".left-nav").removeClass("white-nav"); 
    } 
    }); 

最適な解決策は何ですか?

$(window).scroll(function() { 
    var scroll = $(window).scrollTop(); 
    if (scroll > 0) { 
     $(".left-nav").removeClass("white-nav"); 
    } else { 
     $(".left-nav").addClass("white-nav"); 
    } 
}); 

答えて

1

ちょうどあなたがすでにscroll >= 0をチェックしているので、あなたはちょうどこのようelseを追加する必要があり、scrollTopが0であるときに、クラスを追加するためにaddClass()を使用スクロール・イベント・ハンドラーでは、ページをスクロールしているときに遅いパフォーマンスにつながる可能性があります。特に、スクロール中のDOM操作は、重大なパフォーマンスの問題を引き起こす可能性があります。

+0

を行うにはtoggleClassを()を使用することができます。どうしてか分かりません。技術的には正しいと思われます。 – Janath

+0

@CssSYもし 'if'の条件が間違っていたら、' scroll === 0'ならaddClassを使うべきです、今はコードを変更しました。 – Dij

+1

今はうまくいきます!ありがとうございます – Janath

1
$(window).scroll(function() {  
    var scroll = $(window).scrollTop(); 
    $(".left-nav").toggleClass("white-nav", scroll <= 0); 
}); 

しかし、注意して、複雑なコードこと:

0

あなたはコードのこの彼の平和が動作していないこの http://api.jquery.com/toggleclass/

$(window).scroll(function() {  
var scroll = $(window).scrollTop(); 
if (scroll >0) { 
$(".left-nav").toggleClass("white-nav"); 
} 
else{ 
$(".left-nav").toggleClass("white-nav"); 
} 
}); 
+0

これは機能しません。 – Janath

+0

私は今働いているコードを更新します – Osama

0

$(window).scroll(function() {  
 
    $(".left-nav").toggleClass("white-nav", $(window).scrollTop() <= 0); 
 
});
.white-nav{ 
 
    color:red 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class='left-nav white-nav'>Hey</div> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<div>nothing here</div>

関連する問題