This repository has been archived by the owner on Jun 1, 2023. It is now read-only.
「新型コロナウイルス感染症が心配なときに」のページでボタンをクリックすると、サイドメニューのリンクの色がアクティブではなくなる #3958
Labels
bug
バグ。本来あるべき動作をしていないもの
起こっている問題 / The Problem
#008830
)ではなくなる#sydr
、#sy
、#anx
)がつく.nuxt-link-exact-active
に対して色をつけているスクリーンショット / Screenshot
GIF
期待する見せ方・挙動 / Expected Behavior
起こっている問題の再現手段 / Steps to Reproduce
動作環境・ブラウザ / Environment
原因が環境依存ではないので、他の環境においても再現するものと思われます。
解決策 / How to resolve
いくつかの解決策が考えられます。
A: リンクのアクティブ判定を修正
https://stopcovid19.metro.tokyo.lg.jp/flow/#sydr
とhttps://stopcovid19.metro.tokyo.lg.jp/flow/#sy
のようにURLのハッシュが異なっていても、パスさえ一致すれば同一のページとして扱うようにリンクのアクティブ判定を修正します。Vue Router自体に、この問題についてのイシューおよびRFCがあがっています。
しかしながら、これがVue Routerに取り込まれるのには時間を要すると思われます。
ワークアラウンドとしては、リンクがアクティブかどうかの判定処理を独自に実装する手法があります。
完全なURL(例:
https://stopcovid19.metro.tokyo.lg.jp/flow/#sydr
)ではなくURLからハッシュを除いたもの(例:https://stopcovid19.metro.tokyo.lg.jp/flow/
)の一致で判定すればいいので、location.origin + location.pathname
を現在のURLとして使用すればよさそうです。B: ページ内リンクにアンカーを使用しない
ページ内リンクをアンカーではなく、特定の要素(コンポーネント)の位置にスクロールすることで実現します。
ボタンをクリックしてもURLにハッシュがつかないため、リンクはアクティブなままになります。
The text was updated successfully, but these errors were encountered: