JS は Web ページナビゲーションバーの特殊効果を実現します

JS は Web ページナビゲーションバーの特殊効果を実現します

この記事では、ネイティブ JS を使用して実装された実用的な Web ナビゲーション バー効果を紹介します。ページをスクロールすると、ナビゲーション バーが変化します。効果は次のとおりです。

以下はコード実装です。コピーして貼り付け、収集していただいて結構です。

<!DOCTYPE html>
<html lang="ja">
 
<ヘッド>
    <メタ文字セット="UTF-8">
    <meta name="viewport" content="width=デバイス幅、初期スケール=1.0">
    <title>Web ナビゲーション バーの特殊効果を実現するネイティブ JS</title>
    <スタイル>
        * {
            マージン: 0;
            パディング: 0;
            ボックスのサイズ: 境界線ボックス;
            単語折り返し: 単語を区切る;
            フォント ファミリ: 'Microsoft YaHei'、サンセリフ;
        }
 
        体 {
            背景: #000;
            最小高さ: 200vh;
        }
 
        ヘッダー {
            位置: 固定;
            上: 0;
            左: 0;
            幅: 100%;
            ディスプレイ: フレックス;
            アイテムの位置を中央揃えにします。
            コンテンツの両端揃え: スペースの間;
            遷移: 0.6 秒;
            パディング: 40px 100px;
            zインデックス: 2;
        }
 
        ヘッダー.sticky {
            パディング: 5px 100px;
            背景: #fff;
        }
 
        ヘッダー.logo {
            位置: 相対的;
            フォントの太さ: 700;
            色: #fff;
            テキスト装飾: なし;
            フォントサイズ: 2em;
            テキスト変換:大文字;
            文字間隔: 2px;
            遷移: 0;
        }
 
        ヘッダー ul {
            位置: 相対的;
            ディスプレイ: フレックス;
            コンテンツの中央揃え: 中央;
            アイテムの位置を中央揃えにします。
        }
 
        ヘッダー ul li {
            位置: 相対的;
            リストスタイル: なし;
        }
 
        ヘッダー ul li a {
            位置: 相対的;
            マージン: 0 15px;
            テキスト装飾: なし;
            色: #fff;
            文字間隔: 2px;
            フォントの太さ: 500px;
            遷移: 0.5秒;
        }
 
 
        .バナー{
            位置: 相対的;
            幅: 100%;
            高さ:100vh;
            背景: url(bg.jpg);
            背景サイズ: カバー;
        }
 
        ヘッダー.sticky.logo、
        ヘッダー.sticky ul li a {
            色: #000;
        }
    </スタイル>
</head>
 
<本文>
    <ヘッダー>
        <a href="#" class="logo">ロゴ</a>
        <ul>
            <li><a href="#" >ホーム</a></li>
            <li><a href="#" >概要</a></li>
            <li><a href="#" >サービス</a></li>
            <li><a href="#" >作品</a></li>
            <li><a href="#" >お問い合わせ</a></li>
        </ul>
    </ヘッダー>
    <section class="banner"></section>
    <スクリプト>
        window.addEventListener('スクロール', () => {
            ヘッダーを document.querySelector('header') とします。
            // 重要なプロパティ header.classList.toggle('sticky', window.scrollY > 0)
        })
    </スクリプト>
</本文>
 
</html>

以下はコードで参照されている画像bg.jpgです。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • JSは、現在のメニューを選択した後にナビゲーションバーを強調表示する効果を実現します。
  • レスポンシブナビゲーションバーを実装するためのCSS3+Js
  • ホームページナビゲーションバー DIV+CSS+JS [コード例]
  • JS コードに基づいてナビゲーション バーにポップアップ フローティング メニューを実装する
  • Vuejs トグルナビゲーションバーのハイライト(ルートメニューのハイライト)メソッドの例
  • JS+CSSは、マウスをスライドさせたときに動的にスクロールするナビゲーションバーの効果を実現します。
  • BootstrapナビゲーションバーJSコンポーネントの使い方の詳細な説明
  • マウスをホバーすると動的にスクロールするJavaScript実装のナビゲーションバー
  • 水平ドラッグナビゲーションバー機能を実現するjs
  • 伸縮性のあるナビゲーションバー効果を実現する純粋なJS

<<:  Dockerはポートを介してコンテナに接続します

>>:  MySQL データ アーカイブ ツール mysql_archiver の詳細な説明

推薦する

docker compose helloworld を使い始めるための詳細なプロセス

前提条件Compose は、Docker コンテナをオーケストレーションするためのツールです。Doc...

Vueプロジェクトでよく使われる実践的なスキルのまとめ

目次序文1. マルチレベルのデータとイベントの配信には$attrsと$listenersを使用する2...

Linux スワップメモリ​​を拡張する方法

スワップ メモリとは、主に物理メモリが不足している場合に、システムがハード ディスク領域の一部をサー...

ハードコーディングに別れを告げ、フロントエンドテーブルがインスタンスコードを自動的に計算できるようにします。

序文私のチームが税制モジュールを開発していたとき、計算問題、特にグリッド内の計算を解決するために時間...

MySQLデータベースでスロークエリログを有効にする方法の詳細な説明

データベースはスロークエリログを有効にします設定ファイルを変更する設定ファイルmy.iniに次の2つ...

Vue Element フロントエンドアプリケーション開発のための従来の JS 処理機能

目次1. 従来のコレクションに対するフィルター、マップ、および削減処理方法2. 再帰処理3. for...

タグが新しいページを開くかどうかという問題。主要ウェブサイトの開設状況をまとめました

a タグが新しいページを開くかどうか: (1)百度百科事典:ヘッダーが異なる場合は新しいページが開き...

Angularが予期しない例外エラーを処理する方法の詳細な説明

前面に書かれたコードがどれだけ適切に記述されていても、すべての可能性のある例外を完全に処理することは...

MySQL の行レベルロックの詳細な例

序文ロックは、複数のスレッドを実行するときにリソースへのアクセスを強制的に制限するために使用される同...

Vue elementUI はツリー構造テーブルと遅延読み込みを実装します

目次1. 成果を達成する2. バックエンドの実装2.1 エンティティクラス2.2 データベース内のデ...

W3C組織はHTML4のスタイルに関する推奨事項を提供しています

これは、W3C 組織が HTML4 に対して提示したスタイル推奨事項です。残念ながら、ブラウザが独自...

MySQLはgroup_concat()関数に基づいて複数のデータ行を結合します

非常に便利な機能group_concat() について、マニュアルには次のように記載されています: ...

Win10の明るさ調整効果を模倣するHTML+CSS+JSサンプルコード

HTML+CSS+JS で Win10 の明るさ調整効果を模倣コード <!doctypehtm...

vue-element-admin グローバル読み込み待機中

最近の要件:グローバルロード、すべてのインターフェースはロード待機機能を表示するかどうかを手動で制御...

検証コードケースのJavaScript実装

この記事では、検証コードの効果を実現するためのJavaScriptの具体的なコードを参考までに共有し...