[解決済み] ページスクロールでアクティブなメニュー項目を変更するには?
2022-12-11 10:13:49
質問
ページを下にスクロールすると、アクティブなメニュー項目が変化します。 これはどのように行われるのでしょうか?
どのように解決するのですか?
それは をスクロールイベントにバインドしています。 にバインドすることで行われます。
簡単な例です。
// Cache selectors
var topMenu = $("#top-menu"),
topMenuHeight = topMenu.outerHeight()+15,
// All list items
menuItems = topMenu.find("a"),
// Anchors corresponding to menu items
scrollItems = menuItems.map(function(){
var item = $($(this).attr("href"));
if (item.length) { return item; }
});
// Bind to scroll
$(window).scroll(function(){
// Get container scroll position
var fromTop = $(this).scrollTop()+topMenuHeight;
// Get id of current scroll item
var cur = scrollItems.map(function(){
if ($(this).offset().top < fromTop)
return this;
});
// Get the id of the current element
cur = cur[cur.length-1];
var id = cur && cur.length ? cur[0].id : "";
// Set/remove active class
menuItems
.parent().removeClass("active")
.end().filter("[href='#"+id+"']").parent().addClass("active");
});
上記を参照 をjsFiddleで見てみましょう。 で、スクロール・アニメーションを含む
関連
-
Uncaught SyntaxError: 予期しない入力の終了
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み] どのラジオボタンが選択されているかをjQueryで知るにはどうしたらよいですか?
-
[解決済み] jQueryで要素にスクロールする
-
[解決済み] jQueryを使ってドロップダウンリスト(セレクトボックス)から選択されたテキストを取得する
-
[解決済み] スクロールバーを隠すが、スクロールはできる状態
-
[解決済み] スクロールした後に要素が表示されているかどうかを確認するには?
-
[解決済み】別のウェブページにリダイレクトするにはどうすればいいですか?
-
[解決済み】HTML5入力のプレースホルダの色をCSSで変更する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] jquery mobileでページ中央のグリッド表示
-
[解決済み] jQuery select onChangeの値を取得する。
-
[解決済み] Select <a> which href ends with some string
-
[解決済み] Twitter Bootstrapのモーダルクローズに関数をバインドする
-
[解決済み] jQueryがどのバージョンで読み込まれているかを確認するには?
-
[解決済み] クリックボタンでクリップボードにコピー
-
[解決済み] jQueryを使用してテキストボックスの値を取得するには?
-
[解決済み] jQueryで5秒待つには?
-
[解決済み] jQueryで、ある要素を他の要素に対して相対的に配置するには?
-
[解決済み] Electron: jQueryが定義されていない