特定のdivを超えてスクロールしたときにメニューの色を変更する

ルドー

特定のdivのスクロールを通過したときに色を変更するために、ページの上部に表示されるメニューを作成しようとしています。

問題は次の行にvar mainbottom = $('#main').offset().top + $('#main').height();あると思います:chromeからエラーが発生するため:Uncaught TypeError: Cannot read property 'top' of undefined何が問題なのですか?

これが私のコードです:

<!doctype html>
<html lang="en-US">
<head>
    <link rel="stylesheet" href="style.css" type="text/css">
    <style type="text/css">
        .nav {
            background-color:transparent;
            color:#fff;
            transition: all 0.25s ease;
            position:fixed;
            top:0;
            width:100%;
            background-color:#ccc;
            padding:1em;
        }

        .nav.past-main {
            background-color:#fff;
            color:#444;
        }

        #main {
            height:500px;
            background-color:red;
        }

        #below-main {
            height:1000px;
            background-color:#eee;
        }
    </style>
</head>

<body>
    <script type="text/javascript">
        var mainbottom = $('#main').offset().top + $('#main').height();

        $(window).on('scroll',function(){
            stop = Math.round($(window).scrollTop());
            if (stop > mainbottom) {
                $('.nav').addClass('past-main');
            }
            else {
                $('.nav').removeClass('past-main');
            }
        });
    </script>

    <nav class="nav">
      <a href="#">link</a>
    </nav>
    <div id="main">#main</div>
    <div id="below-main">#below-main</div>

    <script type="text/javascript" src="jquery-1.11.1.min.js"></script>
</body>
</html>

私はここからコードを入手しました:http//codepen.io/taylorleejones/pen/KJsvz?editors = 011しかし、私にはうまくいかないようですありがとう!:)

ゲイリージャスティン

スクリプトは、スクリプトが使用するDOM要素がレンダリングされる前に実行されます。#mainコードがブラウザによって解析されるとすぐに実行され(特に待機を要求しない限り)、アクセスしようとしているのはであるため、のようなものはまだ存在していませんundefinedscript本文タグを本文の下部に移動するか、DOMが読み込まれるまで実行を遅らせるための多くの方法の1つを使用します。

<body>
    <nav class="nav">
        <a href="#">link</a>
    </nav>
    <div id="main">#main</div>
    <div id="below-main">#below-main</div>

    <script>
        $(function() {
            //your code
            var mainbottom = $('#main').offset().top + $('#main').height();

            $(window).on('scroll',function(){

                stop = Math.round($(window).scrollTop());
                if (stop > mainbottom) {
                    $('.nav').addClass('past-main');
                } else {
                    $('.nav').removeClass('past-main');
                }
            });
        });
    </script>
</body>

または

$(document.ready(function() {
//your code
});

または

window.onload = function() {
//your code
};

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ユーザーが特定のdivを超えてスクロールしたときにcssを変更する

分類Dev

特定のdivを超えてスクロールしたときにスティッキーナビゲーションの色を変更するにはどうすればよいですか?

分類Dev

特定のdivクラスにスクロールするときにdivの色を変更する

分類Dev

UIBezierPathがしきい値を超えたときにストロークとパスの色を変更する方法

分類Dev

divを超えてスクロールした後に修正される固定メニュー

分類Dev

ユーザーが配列内のdivを超えてスクロールしたときを追跡する

分類Dev

要素がスクロールして行を超えたときに要素の CSS プロパティを変更する

分類Dev

特定のdivにスクロールしたときにロゴを変更する

分類Dev

fullpage.jsを使用してセクション間をスクロールし、特定のセクションを通過すると消えるときにテキストアニメーションを変更する方法

分類Dev

ユーザーが特定のポイントを超えてスクロールしたときに「クリック」機能を無効にする

分類Dev

divが特定のポイントの上にスクロールされたときにテキストの色を変更する

分類Dev

マウスを離したときのメニューの色の変更

分類Dev

javascriptのドロップダウンメニューを使用してボックスの色を変更する

分類Dev

JTextAreaが特定の行数を超えたときにスクロールバーを有効にする

分類Dev

メニューをクリックしたときにアプリの背景をJavaから変更すると、正しい色になりません

分類Dev

開いているメニューのスクロール可能なdivのサイズを変更する

分類Dev

スクロールがそのdivに達したときに内部divのCSSを変更する

分類Dev

ユーザーが特定のDIVをスクロールしたときにのみchart.jsアニメーションを表示する

分類Dev

jQuery:特定のdivにスクロールすると、imgを挿入してCSSを変更します

分類Dev

別のdivを超えてスクロールした後、divをページの上部に固定しますか?

分類Dev

特定の位置にスクロールするときにdivをアニメーション化する

分類Dev

Vueのドロップダウンメニューを使用してテキストの色を変更する

分類Dev

ドキュメント内の特定のポイントを超えてスクロールした後、アニメーションをアクティブにします

分類Dev

ラベルをクリックしたときにjavascriptを使用してdiv内のHTMLイメージソースを変更する

分類Dev

リストの間にスペースを追加する方法-水平メニューの項目?そして、押されたときに特定の色を与えるには?

分類Dev

同じ色の背景でスクロールしたときにtextViewの色を変更するにはどうすればよいですか?

分類Dev

Android-クリックしたときにメニュー項目のアイコンを変更する方法

分類Dev

新しいツールバーでアクションオーバーフローメニューのテキストの色を変更せずに、タイトルのテキストとボタンの色を変更するにはどうすればよいですか?

分類Dev

アクティブなときにメニューの色項目を変更する

Related 関連記事

  1. 1

    ユーザーが特定のdivを超えてスクロールしたときにcssを変更する

  2. 2

    特定のdivを超えてスクロールしたときにスティッキーナビゲーションの色を変更するにはどうすればよいですか?

  3. 3

    特定のdivクラスにスクロールするときにdivの色を変更する

  4. 4

    UIBezierPathがしきい値を超えたときにストロークとパスの色を変更する方法

  5. 5

    divを超えてスクロールした後に修正される固定メニュー

  6. 6

    ユーザーが配列内のdivを超えてスクロールしたときを追跡する

  7. 7

    要素がスクロールして行を超えたときに要素の CSS プロパティを変更する

  8. 8

    特定のdivにスクロールしたときにロゴを変更する

  9. 9

    fullpage.jsを使用してセクション間をスクロールし、特定のセクションを通過すると消えるときにテキストアニメーションを変更する方法

  10. 10

    ユーザーが特定のポイントを超えてスクロールしたときに「クリック」機能を無効にする

  11. 11

    divが特定のポイントの上にスクロールされたときにテキストの色を変更する

  12. 12

    マウスを離したときのメニューの色の変更

  13. 13

    javascriptのドロップダウンメニューを使用してボックスの色を変更する

  14. 14

    JTextAreaが特定の行数を超えたときにスクロールバーを有効にする

  15. 15

    メニューをクリックしたときにアプリの背景をJavaから変更すると、正しい色になりません

  16. 16

    開いているメニューのスクロール可能なdivのサイズを変更する

  17. 17

    スクロールがそのdivに達したときに内部divのCSSを変更する

  18. 18

    ユーザーが特定のDIVをスクロールしたときにのみchart.jsアニメーションを表示する

  19. 19

    jQuery:特定のdivにスクロールすると、imgを挿入してCSSを変更します

  20. 20

    別のdivを超えてスクロールした後、divをページの上部に固定しますか?

  21. 21

    特定の位置にスクロールするときにdivをアニメーション化する

  22. 22

    Vueのドロップダウンメニューを使用してテキストの色を変更する

  23. 23

    ドキュメント内の特定のポイントを超えてスクロールした後、アニメーションをアクティブにします

  24. 24

    ラベルをクリックしたときにjavascriptを使用してdiv内のHTMLイメージソースを変更する

  25. 25

    リストの間にスペースを追加する方法-水平メニューの項目?そして、押されたときに特定の色を与えるには?

  26. 26

    同じ色の背景でスクロールしたときにtextViewの色を変更するにはどうすればよいですか?

  27. 27

    Android-クリックしたときにメニュー項目のアイコンを変更する方法

  28. 28

    新しいツールバーでアクションオーバーフローメニューのテキストの色を変更せずに、タイトルのテキストとボタンの色を変更するにはどうすればよいですか?

  29. 29

    アクティブなときにメニューの色項目を変更する

ホットタグ

アーカイブ