この期間の目標JavaScript を使用してフロア ナビゲーション効果を作成し、次の 2 つの機能を実現します。
1. 関数の実装1.1 構造層<div id="box" class="box"> <ul class="リスト"> <li class="content-part" data-n="列 1">列 1</li> <li class="content-part" data-n="列 2">列 2</li> <li class="content-part" data-n="列 3">列 3</li> <li class="content-part" data-n="列 4">列 4</li> <li class="content-part" data-n="列 5">列 5</li> </ul> </div> <div class="left"> <ul id="左リスト"> <li data-n="列 1">列 1</li> <li data-n="列 2">列 2</li> <li data-n="列 3">列 3</li> <li data-n="列 4">列 4</li> <li data-n="列 5">列 5</li> </ul> </div> 1.2 スタイルレイヤー<スタイル> * { マージン: 0; パディング: 0; } 本文.box{ 幅: 1200ピクセル; } 本文.box{ マージン: 0 自動; } ul { リストスタイル: なし; } 本文.box ul li { 高さ: 800ピクセル; 背景色: シルバー; 下マージン: 20px; フォントサイズ: 30px; フォントの太さ: 太字; } 本文.left{ 位置: 固定; 左: 20px; 下: 100px; 幅: 100ピクセル; 高さ: 250px; 上位: 50%; 上マージン: -125px; 背景色: シルバー; } 本文.leftulli{ 高さ: 50px; 行の高さ: 50px; テキスト配置: 中央; カーソル: ポインタ; } 本文.current{ 色: #fff; 背景色: トマト; } </スタイル> 1.3 行動層1.3.1 フロアジャンプ左メニューのフロアボタンをクリックすると、対応するフロアにジャンプします。 var oList = document.getElementById('左リスト'); // クリックイベントデリゲート oList.onclick = function (e) { if (e.target.tagName.toLowerCase() == 'li') { // data-n の値を取得します。 var n = e.target.getAttribute('data-n'); // [] 属性セレクター var contentPart = document.querySelector('.content-part[data-n=' + n + ']'); //スクロールを設定します。documentElement.scrollTop = contentPart.offsetTop; } } 1.3.2 フロア監視フロアモニタリングでは、ページをスクロールすると、左メニューのフロア列の背景がそれに応じて変化します。 //ページがスクロールすると、左側のボックス列の背景もそれに応じて変化します var contents = document.querySelectorAll('.content-part'); var lis = document.querySelectorAll('#left-list li'); var offsetTopArr = []; (var i = 0; i < コンテンツの長さ; i++) { offsetTopArr.push(contents[i].offsetTop); } // 比較の便宜上、無限 offsetTopArr.push(Infinity); を追加します。 // スクロールをモニターする var nowFloor = -1; window.onscroll = 関数 (e) { var nowScrollTop = document.documentElement.scrollTop; // break の i 値はボックス配列の添え字です for (var i = 0; i < offsetTopArr.length; i++) { nowScrollTop >= offsetTopArr[i] && nowScrollTop < offsetTopArr[i + 1] の場合 { 壊す; } } // フロアが等しくないので、スタイルを変更します if (nowFloor != i) { 現在のフロア = i; (var j = 0; j < lis.length; j++) の場合 { もし(j == i){ // 現在のフロアにスタイルを追加します lis[j].className = 'current'; } それ以外 { // 他のフロアのスタイルを削除します lis[j].className = ''; } } } } 2. 効果のプレビュー3. プロジェクトコード完全なコードを表示するには、クリックしてコード リポジトリに移動します。 これで、JavaScript でフロア ナビゲーション効果を作成する詳細なプロセスに関するこの記事は終了です。JavaScript フロア ナビゲーションに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: XHTML 入門チュートリアル: XHTML ハイパーリンク
目次序文1. MySQL メインストレージエンジン: 2. さまざまなストレージエンジンがテーブルを...
ネイティブJSによって開始されたネットワークリクエストは、クエリ文字列の形でサーバーに送信されるため...
数日前にプログラムを書いていたとき、プロンプト情報 (TITLE) を新しい行で囲みたいと思いました...
MySQLの重複排除方法【初級】繰り返しのセリフが少ないdistinctive を使用してそれらを見...
目次1. プロジェクトの説明: 2. プロジェクト環境: 2. プロジェクトの手順: 3. プロジェ...
Discuz! フォーラムにはバックグラウンドで多くの設定オプションがあり、これらの設定オプションを...
キーボード文字英語`バッククォート〜チルダ!叫ぶ@で#ナンバーサイン$ドル%パーセント^キャレット&...
目次1. プロジェクト要件2. 文書の内容3. プロジェクト例4. プロジェクトコード1. プロジェ...
tomcat の解凍されたディレクトリを開くと、次のディレクトリ構造が表示されます。 1.Tomca...
序文MySQL データのインポートとエクスポートは mysqldump コマンドで解決できることは誰...
目次1. ブリッジを設定し、検証のためにパケットをキャプチャする1. ブリッジデバイスとセッションを...
CSS3 では、transform 関数を使用して、テキストや画像の回転、拡大縮小、傾斜、移動という...
目次1. オブジェクトの変更検出2. オブジェクトに関する質問配列変更検出3.1 背景3.2 実装I...
誰もがピンボールやレンガ崩しのゲームをプレイしたことがあるでしょう。左と右のキーを使用して、下にある...
この記事では、動的なプログレスバー効果を実現するためのVueの具体的なコードを例として紹介します。具...