ホームページ > ウェブフロントエンド > CSSチュートリアル > 最新のブラウザを使用してページのリロード時にメニュー状態を保持する方法

最新のブラウザを使用してページのリロード時にメニュー状態を保持する方法

Mary-Kate Olsen
リリース: 2024-10-24 05:43:30
オリジナル
567 人が閲覧しました

How to Preserve Menu State on Page Reload using Modern Browsers?

ページのリロード時にメニュー状態を保持する

問題の説明:

複数のリンクを持つメニューがあります。ここで:

  • カーソルを置くと、選択したリンクが右に 1.5em 移動します。
  • クリックすると、ページがリロードされた後でも、別のリンクが表示されるまで、クリックしたリンクは翻訳された位置に留まります。

解決策: localStorage の活用

望ましいメニュー動作を実現するには、HTML5 localStorage を利用して、選択されたリンクの状態を保存および取得できます。ステップバイステップのガイドは次のとおりです:

  1. localStorage 変数の作成: 選択したリンクの ID またはクラスを保存する変数を作成します。例:
<code class="js">const selectedLinkId = localStorage.getItem('selectedLinkId');</code>
ログイン後にコピー
  1. ページ読み込み時にメニューを更新: ページ読み込み時に、selectedLinkId 変数が存在するかどうかを確認します。存在する場合は、対応するリンクを選択し、翻訳された位置を適用します:
<code class="js">if (selectedLinkId) {
  $(`#${selectedLinkId}`).addClass('hovered').siblings().removeClass('hovered');
}</code>
ログイン後にコピー
  1. リンク上のメニュー状態を保存 クリック: リンクがクリックされたら、 localStorage 変数へのクリックされたリンクの ID またはクラス:
<code class="js">$('#menuLinks').on('click', function() {
  localStorage.setItem('selectedLinkId', $(this).attr('id'));
});</code>
ログイン後にコピー
  1. ページ変更時のクリーンアップ: 別のページに移動したときにメニュー状態をリセットする場合がロードされている場合は、pageshow イベントにイベント リスナーを追加し、localStorage 変数をクリアします:
<code class="js">window.addEventListener('pageshow', function() {
  localStorage.removeItem('selectedLinkId');
});</code>
ログイン後にコピー

ストレージの場所の長所と短所:

  • localStorage:

    • 長所: セッションおよびブラウザーのタブ間で永続的で、JavaScript でアクセス可能。
    • 短所: ストレージ容量が限られているため、ユーザーはデータを手動で削除できます。
  • サーバー側:

    • 長所: 無制限のストレージ容量、より安全。
    • 短所: 追加のセットアップが必要で、取得がより複雑。

最終的に、最適な保管場所は特定の要件によって異なります。 localStorage は、大量のストレージを必要としない永続的なユーザー設定に適したオプションです。

以上が最新のブラウザを使用してページのリロード時にメニュー状態を保持する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート