5

ユーザーが1000px下にスクロールすると、サイトの左側の列に固定メニューが表示されるようにしたいのですが、jQuery/JSの経験はあまりありません。私はこのようなものがうまくいくと思いましたが、それは何もしていません:

HTML:

<div id="menu">[MENU_WILL_GO_HERE]</div>

スタイル:

#menu{display:none;}​

JQ:

var fixed = false;
 ​$(document).scroll(function() {
    if( $(this).scrollTop() > 100 ) {
        if( !fixed ) {
           fixed = true;
           $('#menu').css({position:'fixed', display:'block'});
        }
        } else {
           if( fixed ) {
               fixed = false;
               $('#menu').css({display:'none'});
        } 
    } 
});​

Q:

これが機能しない理由はありますか?コードはhttp://jsfiddle.net/roXon/psvn9/1/の例であり、その例をそのまま空白のhtmlページにコピーして貼り付けた場合でも、最新のjqueryライブラリのリンクが含まれています。それでも、そのjsfiddleページのようには機能しません。何を見落とすことができますか?

4

2 に答える 2

17

あなたの例では中括弧は間違っていますが、それにもかかわらず、コードを単純化することができます:

CSS

#menu {
    display : none;
    position : fixed;
}

JS

 $(document).scroll(function() {
    $('#menu').toggle($(this).scrollTop()>1000)
 });​ 

デモ: http: //jsfiddle.net/elclanrs/h3qyV/1/

于 2012-09-18T05:07:02.930 に答える
0

このように編集する

if( $(this).scrollTop() > 1000 )

あなたは1000pxのスクロールを探していますが、これが原因で、コードから100pxと表示されます

于 2012-09-18T05:10:48.357 に答える