0

我的网站上有一个菜单,当鼠标悬停在菜单上的项目上和单击时,我正在使用 CSS。

这是我的菜单:

<div id="stickyheader">
    <a href="#disco">discography</a><span class="grey"> - </span>
    <a href="#bio">biography</a><span class="grey"> - </span>
    <a href="#press">press</a><span class="grey"> - </span>
    <a href="#studio">studio</a><span class="grey"> - </span>
    <a href="#contacts">contacts</a> 
</div>

和我的链接CSS:

a:link, a:visited, a:hover, a:focus, a:active {
    color: #dcdedd;
    text-decoration: none;
    transition: 0.3s ease;
    text-decoration: none;
    -webkit-transition:color 0.5s ease-in;  
    -moz-transition:color 0.5s ease-in;  
    -o-transition:color 0.5s ease-in;  
    transition:color 0.5s ease-in;
}
a:hover{
    color: red
}

我想知道是否有办法使用 css 或 javascript 在单击我的菜单的一项时将所选项目的文本颜色更改为红色,并保持红色直到选择我的菜单的另一项。

这只需要在我的#stickyheader div中发生,而不是在网站的其余部分......

示例:当我点击“传记”时,传记变成红色,过渡(0.5s 缓入),“传记”保持红色,直到我点击另一个项目,当我点击“唱片”时,唱片变成变成红色,传回浅灰色……

我无法找到解决方案...

也许是 JS?

这是一个 JSfiddle:http: //jsfiddle.net/B5dYv/2/

4

4 回答 4

2

这是一个jQuery解决方案:

$('#wrapper').on('click', 'a', function(){
    $(this).addClass('selected').siblings().removeClass('selected');
});

以及相关的CSS:

.selected
{
     color: red !important;
}

更新小提琴

于 2013-10-31T13:03:51.280 回答
1

你可以用javascript做到这一点:

$(document).ready(function() {
    $('#stickyheader a').on('click', function() {
        $(".active").removeClass("active");
        $(this).addClass("active");
    });
});

我更新了你的 jsfiddle:http: //jsfiddle.net/B5dYv/5/

于 2013-10-31T13:04:12.507 回答
0

你可以用 jQuery 做类似的事情:

http://jsfiddle.net/fG5Uy/2/

Javascript:

$(document).ready(function(){
    $("#stickyheader a").click(function(){
        $("#stickyheader a").each(function(i, e){
            $(this).removeClass("selected");
        });                                  
        $(this).addClass("selected");
    });
});

CSS:

#stickyheader a.selected
{
    color : blue;
}
于 2013-10-31T13:03:49.197 回答
0

也许你可以尝试这样的http://jsfiddle.net/JWkZn/

$('#wrapper a').click(function(){
    $('#wrapper a').removeClass('active');
    $(this).addClass('active');
});


a.active { color: red }
于 2013-10-31T13:08:48.307 回答