2017-04-07 7 views
0

基本的には、スクロールダウンを開始するときに透明から背景になるヘッダーがあります。これは、スクロールを開始するときにクラスのヘッダー固定を追加します。ヘッダーが固定であるか、そうでない場合、2つのロゴを切り替えるようにしています。ここでは、今、私は仕事に行くことができないことを私が持っているjQueryのです:jqueryでヘッダーのロゴを切り替えてクラスを追加/削除しようとしています

$(document).ready(function() { 
     if($('#masthead').hasClass('header-fixed')) { 
      $('.bdanzer-fixed').addClass('bdanzer-show'); 
     } else { 
      $('.bdanzer-fixed').removeClass('bdanzer-show'); 
     } 
    }); 

編集、追加HTML:

<img class="bdanzer-normal" src="https://dummytext"> 
       <img class="bdanzer-fixed" src="https://dummytext"> 
+0

あなたは既にページがスクロールされたときに実行される機能を持っている必要があります。このコードをその関数に入れてください。 – Barmar

答えて

1

$(document).ready()は一度だけDOMの準備ができた後に呼び出されます。

​​

をしかし、それは1つのクラスを追加して、このクラスを探して、別の要素に別のクラスを追加するためにscrollを処理するために、一つの場所にscrollを処理するためによくないです:あなただけreadyの代わりにscrollイベントを処理する必要があります。スクロールに必要なすべての処理を行い、必要なすべてのクラスを追加/削除するハンドラを1つだけ持つことをお勧めします。

+0

提案していただきありがとうございます!私はそれを試みたが、どちらもうまくいかないようだ。 – Bdanzer

+0

@Bdanzer、 'scroll()'ハンドラを '$(document)'の代わりに '$(window)'に適用してみてください。 –

1

もtoggleClass機能を使用して簡単にすることでした:

$(document).on('scroll', function(){ 
    var hasClass = $('#masthead').hasClass('header-fixed')); 
     $('.bdanzer-fixed').toggleClass('bdanzer-show', hasClass); 
}); 
関連する問題