最初のリンクの 1 つをクリックすると、ページがリロードされます。これが、javascript がリセットされる理由です (したがって、背景のスタイル設定はありません)。
href の値を に変更する#
と機能します (ただし、ページはもう変更されません)。
それを修正するには、2 つのオプションがあります。
- リンクでのページのリロード (e.preventdefault) を無効にし、ページ コンテンツを ajax (複雑) でロードします。
- このサーバー側を管理します (簡単ですが、動的言語が必要です)。
2 については、php を使用していると仮定します。コードは大まかに次のようになります。
<?php
$pageActiveIndex = false
if ($_SERVER["REQUEST_URI"] == "index.html") {
$pageActiveIndex = true;
}
//same thing for the other links
?>
<li><a <?php if($pageActiveIndex) echo 'class="activeTab"' ?> href="index.html">Home</a></li>
<li><a <?php if($pageActiveAbout) echo 'class="activeTab"' ?> href="about.html">About</a></li>
<li><a <?php if($pageActiveContact) echo 'class="activeTab"' ?> href="contact.html">Contact</a></li>
<li><a href="someblogaddresshere" target="_blank">Contact</a></li>
もちろん、target=_blank
どこにでも追加することもできます...しかし、それがあなたが望んでいる効果であるとは思えません。
編集
あなたのウェブサイトは静的に見えるので、あなたの効果を得るためにあなたができる非常に簡単なことがあります.
カスタム css をスタイルシートの一部のクラス (私は「youarehere」と名付けました) に追加し、すべてのページを開いて変更します。
index.htmlで
<li><a class="youarehere" href="index.html">Home</a></li>
<li><a href="about.html">About</a></li>
<li><a href="contact.html">Contact</a></li>
<li><a href="someblogaddresshere" target="_blank">Contact</a></li>
about.htmlで
<li><a href="index.html">Home</a></li>
<li><a class="youarehere" href="about.html">About</a></li>
<li><a href="contact.html">Contact</a></li>
<li><a href="someblogaddresshere" target="_blank">Contact</a></li>
contact.html で
<li><a href="index.html">Home</a></li>
<li><a href="about.html">About</a></li>
<li><a class="youarehere" href="contact.html">Contact</a></li>
<li><a href="someblogaddresshere" target="_blank">Contact</a></li>