2017-10-08 2 views
0

ページの最初の部分(「バナー」と呼ばれる)をスクロールするとこのメニューが変更され、レスポンス形式では標準的なトグルメニューがスライドするバー。スクロールで動作しないJavascriptメニューのElseステートメント

<header class="ease"> 
    <div class="menu-toggle"><img src="imgs/vap-designs-logo-black.svg" class="logo" alt="Vap Designs - Logotype" /></div> 
    <a href="index.html"><img src="imgs/vap-designs-logo.svg" class="logo" alt="Vap Designs - Logotype" /></a> 
    <nav> 
     <ul> 
      <li><a href="about.html" class="menu">about</a></li> 
      <li><a href="graphic.html" class="menu">graphic</a></li> 
      <li><a href="video.html" class="menu">video</a></li> 
      <li><a href="contact.html" class="menu">contact</a></li> 
     </ul> 
    </nav> 
</header> 

ユーザーがウィンドウのサイズを変更したときに、JavaScriptプロパティを変更するためにJavaScriptを使用します。クラス 'header-white'は、ヘッダの背景色と高さを変更します(私はJavascriptでプロパティを追加するのではなく、これを行うことを好みます)。ポイントは、ウィンドウの幅が768px未満の場合、ヘッダーにクラス 'header-white'を永久に持たせたいということです。それは、あなたがスクロールアップするまで、またはスクロールするまで、それが変更されるまでは、elseステートメントでは指定されていません。それ以外の場合は、まだ元の条件が満たされていない場合でもトリガされ、あなたが他の部分の「スクロール」ハンドラを削除する必要が

$(window).resize(function() { 
    h = $('.banner').height(); 

    if ($(window).width() > 768) { 

     $('nav').css({'display' : 'block'}); 
     $('header').removeClass('toggle-white'); 

     if ($(document).scrollTop() > h) { 
      $('header').addClass('header-white'); 
      $('header > a img').attr('src', 'imgs/vap-designs-logo-black.svg'); 
     } else { 
      $('header').removeClass('header-white'); 
      $('header > a img').attr('src', 'imgs/vap-designs-logo.svg'); 
     } 

     $(window).on('scroll', function(){ 
      if ($(window).scrollTop() >= h){ 
       $('header').addClass('header-white'); 
       $('header > a img').attr('src', 'imgs/vap-designs-logo-black.svg'); 
      } else { 
       $('header').removeClass('header-white'); 
       $('header > a img').attr('src', 'imgs/vap-designs-logo.svg'); 
      } 
     }); 
    } else { 
     $('nav').hide(); 
     $('header').addClass('header-white'); 
    } 
}).resize(); 
+0

削除する必要があります:あなたはこのようにそれを行うことができますウィンドウが小さくなると 'scroll'ハンドラが呼び出されます。それ以外の場合は、サイズにかかわらずウィンドウがスクロールされたときに呼び出されます。 – Ossip

答えて

0

この

はスクリプトです。

$(window).off('scroll')

(または、あなたが複数のスクロール・ハンドラを持っている場合は、変数に関数を保存し、.onと.offの両方にそれを渡す)

+0

こんにちは、あなたのためにこの作品でしたか? – Ossip

関連する問題