您现在的位置:首页 >> 前端 >> 内容

网页下拉滚动,导航条悬停在顶部效果实现

时间:2017/7/20 10:57:41 点击:

  核心提示:效果图vczBy9XiuPbQp7n7o6zO0rj4y/vM+bP2wLSjrLjQvvW63LzytaWhozwvcD4NCjxoMiBpZD0='说明'>说明首先导航条上边的部分占150像素,导...

效果图

网页下拉滚动,导航条悬停在顶部效果实现vczBy9XiuPbQp7n7o6zO0rj4y/vM+bP2wLSjrLjQvvW63LzytaWhozwvcD4NCjxoMiBpZD0="说明">说明

首先导航条上边的部分占150像素,导航条本身40像素,首先得在css中定义一个class,这个class也就是定位之后的结果,又由于我的导航条进来有动画的,所有top值首先设为-40px,然后从-40px的位置出现,这个40px也正好是导航条的高度。

/*固定定位*/
.fixed{
    position: fixed;
    top: -40px;
    z-index: 99;
}

代码

页面加载后,给window添加一个滚动监听,监听滑动事件,然后判断如果移动到高于190的位置后,给导航条添加上fixed Class,每次要执行动画之前都将top值设为-40px,然后判断动画是否执行过,没有执行过就添加一个属性动画并将动画执行标志置为true,如果没有移动到高于190的位置,移除fixed Class,将动画标志置为false

//标示动画是否执行
var isAnimated = false;

$(document).ready(function(){

    //on() 添加监听  "所要监听的事件" function(){}当监听到事件后执行的方法
    $(window).on("scroll",function(){
        //this代表window scrollTop()向上滑动的距离
        if($(this).scrollTop() > 190){
            $(".nav").addClass("fixed");
            //如果动画执行过
            if(!isAnimated){
                $(".nav").css("top","-40px");//每次要执行动画之前都将top值设为-40px
                $(".nav").animate({"top":"0px"},1000);
                isAnimated = true;
            }
        }else{
            isAnimated = false;
            $(".nav").removeClass("fixed");
        }
    })

});

作者:网络 来源:webbc的博客