1

私はjQueryとjavascriptが初めてです。シングルページのウェブサイトを作成しようとしています。ナビゲーションは上部に固定されています。単一ページの新しい「部分」で、ナビゲーションにそれを表示し、現在オンになっている部分をナビゲーションで強調表示したい。

私はscroll()で何とかそれを行うことができましたが、変数「top」が0より大きい場合にのみ機能します。私は間違っていることはおそらく本当にばかげていることを知っていますが、私はこれに慣れていないので、これを願っています気にしません。

http://jsfiddle.net/mAPh6/

$(document).scroll( function() {
    var top = $(document).scrollTop();

    if ( 200 > top > 0 )
        $(".navLinkTop").css("border-bottom", "5px solid #fff568");
    else
        $(".navLinkTop").css("border-bottom", "none");

    if ( 400 > top > 200 )
        $(".navLinkAbout").css("border-bottom", "5px solid #fff568");
    else
        $(".navLinkAbout").css("border-bottom", "none");

    if ( 400 > top > 0 )
        $(".navLinkWork").css("border-bottom", "5px solid #fff568");
    else
        $(".navLinkWork").css("border-bottom", "none");

    if ( 400 > top > 0 )
        $(".navLinkContact").css("border-bottom", "5px solid #fff568");
    else
        $(".navLinkContact").css("border-bottom", "none");
});
4

1 に答える 1

2

「a は b よりも大きく、a > b > c b は c よりも大きい」と読み上げられません。むしろ、次のことが起こります。

  1. a > b > cに評価されます
  2. (true) > c(a が実際に b より大きいと仮定) これは次のように評価されます
  3. Number(true) > cに評価される型変換があるため
  4. 1 > cこれはかなりランダムです

だから、3 > 2 > 0本当ですが、3 > 2 > 1間違っています。通常、AND&&を実行しているときに使用する必要があります。

これは、>演算子が 2 項であるためです。つまり、2 つの引数を取ります。

あなたがする必要があるのは(a > b) && (b > c)&&「および」を意味することです

あなたの場合、これは次のようなステートメントを変更することを意味し 200 > top > 0ます(top < 200) && (top > 0)

于 2013-03-09T14:32:40.523 に答える