jQuery滚动事件$(window).scroll()实现导航栏高度变化
有些网站的导航菜单的高度随着网页下拉变化,并且将网页恢复到顶部时,高度又恢复。效果如下图:
怎么实现这样的导航栏高度随着网页拖动变化呢?这就需要使用到jQuery滚动事件$(window).scroll()。下面学做网站论坛介绍一下实现方法。
方法/步骤
第一步:在网站导航代码底部放上以下的代码,用于监测导航菜单与滚动条的垂直位置距离,达到标注的高度后,就自动给导航菜单添加一个class类head_up;
<script>
$(window).scroll(function () {
var sT = $(window).scrollTop();
if (sT >50) {
$("#header").addClass("head_up");
} else {
$("#header").removeClass("head_up");
}
});
</script>
第二步:然后就是给新添加的CLASS类添加CSS样式,让它控制这个新类下的菜单的高度。当然后如果有LOGO和下拉二级菜单时,也需要更换样式;
.head_up{position:fixed;top:0;left:0;right:0;z-index:999}
.head_up,.head_up .logo a{height: 70px;transition: 400ms;}
.head_up .logo img{max-width: 80%;head_uptransition: 400ms;}
.head_up .nav_box .topnav>li>a{height: 70px;line-height: 70px;transition: 400ms;}
.head_up .nav_box .topnav>li>.sub-menu{top: 70px;}
这样就可以实现下拉控制导航高度变化了。代码里transition: 400ms起到了渐变的效果。