1

現在、次のコードを使用して、現在のスクロール位置に基づいてコンテンツを表示/非表示にしています:

$(window).scroll(function () {
    if ($(window).scrollTop() >= 409) {
        $('.cliocont').fadeTo('slow', 1.0);
    } else if ($(window).scrollTop() <= 409) {
        $('.cliocont').fadeTo('slow', 0.5);
    }
});

このコードが機能していないように見える理由はありますか? else if ステートメントが機能するときはいつでも、コードが追加されるたびに、コンテンツが表示されたり非表示になったりしません。

ありがとう、ネイサン・ニアマー

4

2 に答える 2

6

.stop()アニメーションのフェード エラーを防ぐために追加され、不要なアニメーションを防ぐため
にブール値フラグが追加されました。var io

jsBin デモ

var $cc = $('.cliocont'),
    io  = false; // flag // compare booleans

$(window).scroll(function () {
  
   var is409 = $(window).scrollTop() >= 409; // boolean
   if (io != is409){
      io = is409;
      $cc.stop().fadeTo(800, is409?1.0:0.5);
   }
 
}); 

is409 ? 1.0 : 0.5条件演算子ifであり、ステートメントの省略形です。
boolean ? ifTrue : else ;

于 2012-07-17T18:40:03.550 に答える