我一直在研究导航栏,并努力使自己了解收到的一些jQuery。
我将在下面发布我的代码以及指向代码笔(https://codepen.io/JustNayWillo/pen/aXpKbb)的链接,以便您可以更好地理解。
HTML:
<div id="navbar">
<li class="tab">
<a class="link active" href="#home">
<div class="text">Home</div>
</a></li>
<li class="tab">
<a class="link" href="#work">
<div class="text">Work</div>
</a></li>
<li class="tab">
<a class="link" href="#about">
<div class="text">About</div>
</a></li>
</div>
CSS:
#navbar {
position: absolute;
text-align: right;
top: 3.5em;
right: 3.5em;
z-index: 2;
list-style-type: none;
}
.tab {
background-color: white;
opacity: 0.3;
height: 3.5em;
width: 0.2em;
margin-bottom: 1em;
}
.active, .tab:hover {
opacity:1;
transition:0.7s ease;
}
.active, .link:hover {
opacity:1;
transition:0.7s ease;
}
.active, .text:hover {
opacity:1;
transition:0.7s ease;
}
JS / jQuery:
$(function() {
var links = $('.tab > .link');
links.on('click', function() {
links.closest('.tab').removeClass('active');
$(this).closest('.tab').addClass('active');
});
});
一切正常,但是导航不是从活动的类开始,我希望“ Home”在开始时是活动的。另一个问题是该文本不会保持活动状态,仅在悬停时显示,我希望它保持不透明:处于活动状态时为1。
谢谢大家。
答案 0 :(得分:2)
添加此CSS
.text:hover, .active .text {
opacity:1;
transition:0.7s ease;
}
HTML更改
在class
上添加有效的tab
<li class="tab active">
答案 1 :(得分:0)
以样式添加此CSS
.active .text{
opacity:1;
}
更新html
<div id="navbar">
<li class="tab active">
<a class="link active" href="#home">
<div class="text">Home</div>
</a></li>
<li class="tab">
<a class="link" href="#work">
<div class="text">Work</div>
</a></li>
<li class="tab">
<a class="link" href="#about">
<div class="text">About</div>
</a></li>
更新脚本</ p>
$(function() {
var links = $('.tab > .link');
links.on('click', function() {
$('#navbar').find('.active').removeClass('active');
$(this).closest('.tab').addClass('active');
$(this).closest('.link').addClass('active');
});
});