我想在点击时更改超链接的颜色。
我使用了以下代码并且工作正常:
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/。单击一个菜单按钮后,它也会更改其他按钮属性并停止悬停属性。
如果您能够理解我所说的内容并找到解决方案,那么请回答。
提前谢谢
答案 0 :(得分:1)
为了公平对待OP,他们想要影响一些不仅仅是文字颜色的变化。而且,不幸的是,大多数styling of the :visited state no longer works as it once did。
除了字体颜色外,它们还使字体大小更大,并添加/删除文本阴影。
虽然,我同意,这种JS方法有点过头了。
我对OP的建议是将菜单链接实际转到单独的页面,而不仅仅是交换div。然后,您可以通过任何方式将“当前”类移动从链接移动到链接 - 即使是静态HTML,也可以手动移动。然后根据它来设置样式:
a.current { //styles }
这种方式可以减少出错的可能性,导航只适用于HTML& CSS - 不需要JS。
答案 1 :(得分:1)
这在css中很简单
a:hover{background-color:yellow;}
答案 2 :(得分:0)
为超链接写文字颜色,像这样写
a:visited{
color:red;
}
更新:
好的,如果你想使用JQuery,我们的想法是你将菜单设为<li>
或任何其他元素,并将这些图像作为背景图像。当你创建图片有白色文本和&amp;其他下方的黄色(CSS spriting),单击菜单,在当前元素中添加一个名为selected的类,然后移动上面的图像以显示黄色文本,然后从所有其他菜单中删除所选类。例如,我使用了<a>
标签。
.menu a{
background-image:url('images/button.png');
}
.menu a.selected {
background-image:url('images/button.png'):0 -50px;
}
$(".menu a").live('click', function() {
$(".menu a").removeClass("selected");
$(this).addClass("selected");
return false;
});
查看此帖子here
答案 3 :(得分:0)
然后使用
#home:visited, #comp:visited{
color:red;
}
或更好,将所有相关的锚点应用于className,例如'rav'(访问后的红色;)) 所以你可以这样做:
.rav:visited{ color:red; }
干杯!