jQuery实现滚动时动态缩小导航栏的效果

在开始介绍之前,我们先先看一下下面的效果,用QQ截的图,效果很不清楚,但是能说明问题。

dynamicscroll

怎么实现这样的效果呢?用得比较多的算是jQuery的waypoints插件了,其实不用jQuery插件,很简单的一段jQuery代码就可以实现这样的效果,不过要结合CSS3过渡,IE9以下的浏览器效果可能就差一点了。实现以上效果的关键代码如下。

首先,用jQuery判断网页滚动,网页滚动的高度大于120像素时,添加“small”类到nav上,其他情况下,移除这个类。这个和本站之前的文章给WordPress添加回到顶部功能有点类似,都是基于scrollTop来判断的。

$(document).on("scroll", function() {
 if ($(document).scrollTop() > 120) {
 $("nav").addClass("small");
 } else {
 $("nav").removeClass("small");
 }
});

然后,还需要CSS来配合,首先,顶部导航位置需要设为静态,然后导航变化时,加上CSS3过渡效果。

nav {
 height:141px;
 background:#fff;
 border-bottom:1px solid #ccc;
 width:100%;
 position:fixed;
 top:0;
 left:0;
 z-index:10;
 -webkit-transition:all .3s;
 -moz-transition:all .3s;
 transition:all .3s
}

nav.small {
 height: 51px;
}

下拉网页,下拉的高度超过120像素时,导航就会像上面的效果那样自动缩小,非常简单,效果也非常不错。

原文来自:https://www.wpzhiku.com/add-scroll-to-top-button-towordpress/