2017-11-09 12 views
-1

を実行しないでください:ウィンドウサイズはモバイルで、フォームが表示されている場合、私は2つの条件が満たされた場合、このスクリプトをキャンセルしたいスクリプト

  1. ウィンドウ幅が767以下
  2. #hidden-formは、ディスプレイのスタイルを持っている:ブロックをここで

機能である:

function init() { 
    window.addEventListener('scroll', function(e) { 
    var distanceY = window.pageYOffset || document.documentElement.scrollTop, 
     shrinkOn = 300, 
     header = document.querySelector("header"); 
    if (distanceY > shrinkOn) { 
     classie.add(header, "smaller"); 
    } else { 
     classie.remove(header, "smaller"); 
    } 
    }); 
} 
window.onload = init(); 

私はfollowiを追加してみましたもしそうでないとngのが、それはすべてのビューでスクリプトキャンセル:

{ 
    ($(window).width() <= 767 && $('#hidden-form').css('display', 'block')) { 
    .return; 
    } 

更新されたコードが、動作していない-----

function init() { 
    window.addEventListener('scroll', function(e) { 
     var distanceY = window.pageYOffset || 
document.documentElement.scrollTop, 
      shrinkOn = 300, 
      header = document.querySelector("header"); 
     if (distanceY > shrinkOn) { 
      classie.add(header, "smaller"); 

     } else if ($(window).width() <= 767 && $('#hidden-form').css('display') == 'block') { 
.return; 
} else { 

      classie.remove(header, "smaller"); 

     } 
    }); 
} 
window.onload = init(); 

残念ながら、これはまだありえない作業、任意のアイデア?

+3

FYI '.css( 'display')'は.css( 'display'、 'block') 'が値を設定している間に値を返します。 –

+0

@epascarelloあなたは説明できますか?関数は、この条件を追加しようとするまでうまくいきます。window.onload = init(); ? – Jenny

+0

を呼び出しているためです。それは負荷を待っていません。 'window.onload = init;' – epascarello

答えて

0

使用この:

$('#hidden-form').css('display') == 'block' 

また、モバイルチェックのために、あなたはmatchMedia

0

$('#hidden-form').css('display', 'block')を使用することができますがdisplayの値を設定することです。チェックするには、$('#hidden-form').css('display')を使用してください。したがって、コードは次のようになります:

($(window).width() <= 767 && $('#hidden-form').css('display') == 'block') 
+0

これは私が今持っているものですが、私はまだ同じ問題を見ています。デスクトップ/タブレット上でも機能がキャンセルされます。 – Jenny

関連する問題