我在这个JSFIDDLE
中有一个面包屑的工作演示以下是代码
HTML
<div id="crumbs">
<ul>
<li><a href="#1">One</a></li>
<li><a href="#2">Two</a></li>
</ul>
</div>
CSS
#crumbs ul li {
display: inline;
}
#crumbs ul li a {
display: block;
float: left;
height: 50px;
background: #3498db;
text-align: center;
padding: 30px 40px 0;
position: relative;
margin: 0 10px 0 0;
font-size: 20px;
text-decoration: none;
color: #fff;
padding: 30px 40px 0 80px;
}
#crumbs ul li a:after {
content: "";
border-top: 40px solid rgba(0,0,0,0);
border-bottom: 40px solid rgba(0,0,0,0);
border-left: 40px solid #3498DB;
position: absolute;
right: -40px;
top: 0;
z-index: 1;
}
#crumbs ul li a:before {
content: "";
border-top: 40px solid rgba(0,0,0,0);
border-bottom: 40px solid rgba(0,0,0,0);
border-left: 40px solid #fff;
position: absolute;
left: 0;
top: 0;
}
#crumbs ul li a:hover {
background: #fa5ba5;
}
#crumbs ul li a:hover:after {
border-left-color: #fa5ba5;
}
Css有鼠标悬停的粉红色,但实际上我想要做的是在点击面包屑上的任何项目时保留该颜色即:粉红色应该在点击后保留,这可以作为用户的信号,其中breadcrumb中的tab目前处于活动状态。
我尝试过使用:在css中处于活动状态,但点击后它不会保留面包屑上的颜色。
任何帮助?
答案 0 :(得分:1)
您必须使用:visited
选择器。这样的事情会很好用:
#crumbs ul li a:visited {
background-color: #fa5ba5;
}
#crumbs ul li a:visited:after {
border-left-color: #fa5ba5;
}
JS小提琴:Demo
EDIT(完整JS方法):
您可以在JSFiddle here中找到完整的JS演示。
在onclick
事件中,有一个循环可以从之前的活动链接中删除类.onclick
。
提供的代码必须改进,只是为了告诉你它可以工作。
我强烈建议你使用像jQuery这样的库,因为原生JS代码中的DOM操作非常无聊。
为了向您展示差异,使用jQuery,您必须这样做:
HTML代码:
<div id="crumbs">
<ul>
<li><a class="link" href="#1">One</a></li>
<li><a class="link" href="#2">Two</a></li>
</ul>
</div>
JS代码:
$('.link').on('click', function() {
$('.onclick').removeClass('onclick'); // Remove class from previous active link
$(this).addClass('onclick'); // Add class to new active link
});