我想在带有LESS的Bootstrap 3网站的菜单栏(#secondary-menu)中添加一个css类(.shrink),当菜单在向下滚动时达到75px的上边距位置时。菜单栏使用sticky.js固定为75px。但是,我想用缩小类来改变它的外观。
不幸的是,我没有在当前表单中使用我的jQuery代码。收缩等级不断应用。就其本身而言,CSS类可以工作。
HTML:
<!-- service-nav -->
<div id="service-nav" class="shrink">
<div class="container-fluid">
<div class="container text-center">
<ul class="list-inline">
<li><i class="fa fa-camera-retro fa-3x"></i><p>Test</p></li>
<li><i class="fa fa-asterisk fa-3x"></i><p>Test</p></li>
<li><i class="fa fa-comment fa-3x"></i><p>Test</p></li>
<li><i class="fa fa-search fa-3x"></i><p>Test</p></li>
<li><i class="fa fa-rocket fa-3x"></i><p>Test</p></li>
<li><i class="fa fa-star fa-3x"></i><p>Test</p></li>
</ul>
</div>
</div>
</div><!-- /.service-nav -->
LESS:
#service-nav {
background: #000;
width: 100%;
li {
padding: 40px 60px 25px 60px;
color: #808080;
}
i {
display: block;
}
p {
font-size: 16px;
padding-top: 15px;
letter-spacing: 1px;
}
@shadow: 0px 5px 5px 0px rgba(50, 50, 50, 0.5);
.box-shadow(@shadow);
}
.shrink {
li {
padding: 0px 0px 0px 0px;
}
i {
font-size: 30px;
}
p {
display: none;
}
}
的jQuery
$(window).scroll(function() {
$("#service-nav").removeClass("shrink");
var scroll = $(window).scrollTop();
if (scroll <= 75) {
$("#service-nav").addClass("shrink");
}
}
答案 0 :(得分:1)
您缺少结束括号);
。应该是:
$(window).scroll(function() {
$("#service-nav").removeClass("shrink");
var scroll = $(window).scrollTop();
if (scroll <= 75) {
$("#service-nav").addClass("shrink");
}
});
答案 1 :(得分:0)
试试这个
$(window).scroll(function () {
var a = $('#service-nav');
var p = a.offset().top;
var q = $(window).scrollTop();
var r = $('#service-nav').parent().offset().top;
if (p - q < 75) {
a.addClass("shrink");
} else {
if (p - r < 75) {
a.removeClass("shrink");
}
}
});