点击后如何使按钮保持"活动"状态?

OCD*_*OCD 9 html javascript css button

我目前正在为菜单项使用以下代码:

HTML

<li>
<a id="About" class="button" href="About Us.cshtml">About Us</a>
</li>
<li style="margin-left: 30px;">
<a id="Services" class="button" href="Services.cshtml">Services</a>
</li>
<li style="margin-left: 30px;">
<a id="Contact" class="button" href="Contact Us.cshtml">Contact Us</a>
</li>
Run Code Online (Sandbox Code Playgroud)

CSS

#About {background-image: url(../Buttons/About.png); width: 87px;}
#Services {background-image: url(../Buttons/Services.png); width: 112px;}
#Contact {background-image: url(../Buttons/Contact.png); width: 117px;}
a.button {height: 20px; display: inline-block; background-repeat: no-repeat}
a.button:hover {background-position: 0 -20px;}
a.button:active {background-position: 0 -40px;}
Run Code Online (Sandbox Code Playgroud)

我需要让按钮在单击并加载/刷新页面后保持"活动"状态.

如果解决方案需要javascript,请记住我是业余爱好者,所以我需要外行人的任何解释(最好用例子).

War*_*0ck 3

您需要识别当前所在的页面。

var page = window.location.href;
page = page.substr((page.lastIndexOf('/') + 1));
page = page.split('.');
page = page[0];
//At this point you will have the current page only with no extension or query paramaters
//I.E. "About Us"
page = page.toUpperCase();
//This accounts for upper or lower casing of urls by browsers.
switch(page) {
    case "ABOUT US":
        $('#About').addClass('< name of active button class >');
        break;
    case "SERVICES":
        $('#Services').addClass('< name of active button class >');
        break;
    case "CONTACT US":
        $('#Contact').addClass('< name of active button class >');
        break;
}
Run Code Online (Sandbox Code Playgroud)

如果您不使用 jQuery,请替换此行:

$('#< element name >').addClass('< name of active button class >');
Run Code Online (Sandbox Code Playgroud)

用这一行:

document.getElementById("< element name >").className += " < name of active button class >";
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。