javascript - 单击时更改颜色

标签 javascript css hyperlink onclick hover

我想在单击超链接时更改它的颜色。

我使用了以下代码并且它有效:

var current = "home";

function home()
{
    current = "home";
    update2();
}

function comp()
{
    current = "comp";
    update2();
}

function team()
{
    current = "team";
    update2();
}

function cars()
{
    current = "cars";
    update2();
}

function spons()
{
    current = "spons";
    update2();
}

function update2()
{
    if (current == "home"){
        document.getElementById('home').style.cssText='color:#FFE006;font-size:20pt;text-   shadow: -1px 1px 8px #ff9c00, 1px -1px 8px #ff9c00;';
        document.getElementById('comp').style.cssText='color:white;font-size:18pt;text-shadow:;';
        document.getElementById('team').style.cssText='color:white;font-size:18pt;text-shadow:;';
        document.getElementById('cars').style.cssText='color:white;font-size:18pt;text-shadow:;';
        document.getElementById('spons').style.cssText='color:white;font-size:18pt;text-shadow:;';
    } else if (current == "comp"){
        document.getElementById('home').style.cssText='color:white;font-size:18pt;text-shadow:;';
        document.getElementById('comp').style.cssText='color:#FFE006;font-size:20pt;text-shadow: -1px 1px 8px #ff9c00, 1px -1px 8px #ff9c00;';
        document.getElementById('team').style.cssText='color:white;font-size:18pt;text-shadow:;';
        document.getElementById('cars').style.cssText='color:white;font-size:18pt;text-shadow:;';
        document.getElementById('spons').style.cssText='color:white;font-size:18pt;text-shadow:;';
     } else if (current == "team"){
         document.getElementById('home').style.cssText='color:white;font-size:18pt;text-shadow:;';
         document.getElementById('comp').style.cssText='color:white;font-size:18pt;text-shadow:;';
         document.getElementById('team').style.cssText='color:#FFE006;font-size:20pt;text-shadow:  -1px 1px 8px #ff9c00, 1px -1px 8px #ff9c00;';
         document.getElementById('cars').style.cssText='color:white;font-size:18pt;text-shadow:;';
         document.getElementById('spons').style.cssText='color:white;font-size:18pt;text-shadow:;';
     } else if (current == "cars"){
         document.getElementById('home').style.cssText='color:white;font-size:18pt;text-shadow:;';
         document.getElementById('comp').style.cssText='color:white;font-size:18pt;text-shadow:;';
         document.getElementById('team').style.cssText='color:white;font-size:18pt;text-shadow:;';
         document.getElementById('cars').style.cssText='color:#FFE006;font-size:20pt;text-shadow: -1px 1px 8px #ff9c00, 1px -1px 8px #ff9c00;';
         document.getElementById('spons').style.cssText='color:white;font-size:18pt;text-shadow:;';
     } else if (current == "spons"){
         document.getElementById('home').style.cssText='color:white;font-size:18pt;text-shadow:;';
         document.getElementById('comp').style.cssText='color:white;font-size:18pt;text-shadow:;';
         document.getElementById('team').style.cssText='color:white;font-size:18pt;text-shadow:;';
         document.getElementById('cars').style.cssText='color:white;font-size:18pt;text-shadow:;';
         document.getElementById('spons').style.cssText='color:#FFE006;font-size:20pt;text-shadow: -1px 1px 8px #ff9c00, 1px -1px 8px #ff9c00;';
     }
 }

实际上,它起作用了,但是出现了一个问题。如您所见,当 current 设置为 home/spons/cars/team/comp 时,我尝试更改颜色、大小和文本阴影等属性。 current 在用户单击超链接时调用函数时发生变化。

当我告诉它在 :hover 时执行相同的属性时出现问题。单击按钮后,其属性以及其他超链接都会更改为白色和 18 磅大小。

现在,一旦用户点击一个超链接,它就会改变框架的来源、它自己的属性和其他超链接的属性。但是一旦我单击它然后将鼠标悬停在另一个超链接上,悬停的属性将不起作用,但 javascript 的属性将起作用。

如果你不明白我的问题,那么看看http://www.xphoenix1.hpage.com/ .单击一个菜单按钮后,它也会更改其他按钮的属性并停止悬停属性。

如果你能看懂我说的并且有解决办法,那么请回答。

提前谢谢你

最佳答案

为了公平起见,他们想要影响一些不仅仅是文本颜色的变化。而且,不幸的是,大多数styling of the :visited state no longer works as it once did .

除了字体颜色之外,他们还使字体变大了一点,并添加/删除了文本阴影。

不过,我同意,这种 JS 方法有点过头了。

我对 OP 的建议是让菜单链接实际转到单独的页面,而不仅仅是交换 div。然后,您可以通过您希望的任何方式将“当前”类从一个链接移动到另一个链接——如果这是静态 HTML,甚至可以手动操作。然后相应地设置样式:

a.current {  //styles }

这种方式大大降低了出错的可能性,并且导航仅适用于 HTML 和 CSS - 不需要 JS。

关于javascript - 单击时更改颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12639516/

相关文章:

javascript - ionic2/angular2 中的后续 promise

javascript - jQuery if语句导致浏览器崩溃

javascript - 如何正确调整我的 Squarespace 封面视频大小?

python - 在 Django 元素中集成自定义 'change-list' 页面

Javascript 如何隐藏 div onclick 的短语

html - 在电子邮件中的链接中使用环境变量

javascript - 我可以在 Facebook 中拥有多少个 javascript 链接?

javascript - 如果 img alt 标签包含 'sold' 找到下一个匹配类

css - 在链接之前或之后放置图标以指示文件类型(例如 : linking Adobe PDF, 音频或视频)的最佳做法是什么

javascript - Electron .js | ipcRenderer 和 ipcMain 导致白屏/黑屏