2016-04-09 14 views
3

したがって、ページの特定の位置にフェードインまたはフェードアウトする新しいレターサインボックスがあります。サインアップボックスには、オフにするボタンもあります。これをクリックすると、ページが再ロードされるまで表示されなくなります。私の仮定は、disablefade変数を割り当てて、実行されるスクロール機能を停止することです。しかし、なんらかの理由でこれは機能しません。いいえクリックして再度スクロールすると、divが再び表示されます...リンクがクリックされたときにフェードイン/アウトdivを無効にする方法

ありがとうございました!


jQuery(document).ready(function($) { 

    $("#nl-pop").hide(); //hide nl block initially 
    var disableFade = "false"; 

    var topOfOthDiv1 = $("#newsletter-cta").offset().top - 1500; 
    var topOfOthDiv3 = $("#newsletter-cta").offset().top; 

    jQuery('#no-thanks').click(function(event) { 
     event.preventDefault(); 
     jQuery('#nl-pop').fadeOut('slow'); 
     var disableFade = "true"; 
    }); 

    console.log(disableFade); 

    if(disableFade === "false") 
     { 
     $(window).scroll(function() { 
      if($(window).scrollTop() topOfOthDiv1) { //scrolled past the other div? 
        $("#nl-pop").fadeOut(200); //reached the desired point -- show div 
       } 
      } 

     });   
    } 

}); 

答えて

4

disable fade変数の値は、以下のようにスクロール機能内でチェックする必要があります。

コードでは、スクロール機能の外側でdisableFade値をチェックするために条件を使用しています。 変数を使用するときは、毎回varを使用しないでください。

0

1:stringの代わりにboolean型を使用します。割り当てから引用符を削除します。

var disableFade = true; 

2:新しいinitを実行しています。 .clickトリガーの範囲内の変数の値。最初にvarを削除してください。変数をオーバーライドし、新しい変数を作成しないでください。

3:呼び出されたときの状態if(!disableFade)

+0

ブール値が使用されているかどうかは関係ありません。有効な条件チェックであるかどうかを常に確認しています(disableFade === "false")。コードの実際の問題は、条件チェックが$(window).scroll関数の外側に書かれています(var disableFadeを2回使用しました)。if($(window).scrollTop()topOfOthDiv1 && disableFade === "false")のような関数内に記述する必要があります。私の答え。 –

0
jQuery(document).ready(function($) { 

    $("#nl-pop").hide(); 
    var disableFade; 

    var topOfOthDiv1 = $("#newsletter-cta").offset().top - 1500; 
    var topOfOthDiv3 = $("#newsletter-cta").offset().top; 

    jQuery('#no-thanks').click(function(event) { 
     event.preventDefault(); 
     jQuery('#nl-pop').fadeOut('slow'); 
     var disableFade = true; 
     return disableFade; 
    }); 

    console.log(disableFade); 

    if(disableFade !== true) 
     { 
     $(window).scroll(function() { 
      if($(window).scrollTop().topOfOthDiv1) { 
        $("#nl-pop").fadeOut(200); 
       } 
      } 

     });   
    } 

}); 

にブール値が引用を必要としない場合を変更します。

+0

これには、.clickトリガーのスコープ内のdisableFade変数の再作成に間違いがあります。 –

関連する問題