2

定義されたスクロールレベルでdivを垂直方向に固定したい。私はこれを試しました:

HTML:

<div id='something'>Something! </div>

CSS:

#something { 
    position:relative;
}

JQuery:

$(window).scroll(function(){
    if ($window.scrollTop() > 50){
        $("#something").css({"top": ($(window).scrollTop()) -50 + "px"});
    }
});

デモは次のとおりです: http://jsfiddle.net/1Blerk/3jacz/4/ (#something は #headerMenu と同じことを行う必要がありますが、スクロールした後)

そして固定される位置を変えたくない!

私はJQueryにあまり詳しくないので、括弧かセレクターか...

前もって感謝します!

4

2 に答える 2

3

Javascript コンソールを見ると、次のエラーが表示されることに気付くでしょう。

Uncaught ReferenceError: $window が定義されていません

上記のコメントで @matt-ball が言ったように、適切なコード プラクティスを促進するために、他のユーザーに助けを求める前に常にエラー コンソールを確認してください。windowコードの問題は、jQuery セレクターでグローバルを選択していないことです。代わりに、存在しない変数を選択しています。以下を試してください。

$(window).scroll(function(){
    if ($(window).scrollTop() > 50){
        $("#something").css("top", $(window).scrollTop() - 50 + "px");
    } else {
        $("#something").css("top", "0px");
    }
});

さらに、何が起こっているのかを理解しやすいと思われる場合は、秒$(window)を に変更できます。$(this)

于 2013-06-30T13:50:29.713 に答える
2

$(window)括弧で囲むのを忘れました。

フィドル

于 2013-06-30T13:49:41.600 に答える