JS控制导航菜单的位置实现导航吸顶效果

老蒋在前面的多篇文章中都有提到可以用CSS实现控制菜单导航的吸顶效果。在这篇文章中,我们也可以通过用JS代码来判断导航的位置距离顶端浏览器的位置,然后再实现吸顶跟随效果。

JS控制导航菜单的位置实现导航吸顶效果

1、CSS 代码部分

    body {
        padding:0;
        margin:0;
    }
    #nav {
        width:100%;
        height:60px;
        background:#39f;
        color:#fff;
        line-height:60px;
        text-align:center;
        padding:0;
        margin:0;
        list-style:none;
    }
    #nav li {
        float:left;
        width:20%;
        height:60px;
    }
    .fix {
        position:fixed;
        top:0;
        left:0;
    }

2、JS 代码部分

var tit = document.getElementById("nav");
//alert(tit);
//占位符的位置
var rect = tit.getBoundingClientRect();//获得页面中导航条相对于浏览器视窗的位置
var inser = document.createElement("div");
tit.parentNode.replaceChild(inser,tit);
inser.appendChild(tit);
inser.style.height = rect.height + "px";

//获取距离页面顶端的距离
var titleTop = tit.offsetTop;
//滚动事件
document.onscroll = function(){
    //获取当前滚动的距离
    var btop = document.body.scrollTop||document.documentElement.scrollTop;
    //如果滚动距离大于导航条据顶部的距离
    if(btop>titleTop){
        //为导航条设置fix
        tit.className = "clearfix fix";
    }else{
        //移除fixed
        tit.className = "clearfix";
    }
}

3、HTML代码部分

<div class="wrap">
    <h1>LAOJIANG部落</h1>
    <p>老蒋收集的吸顶效果导航</p>
    <ul id="nav">
        <li>首页</li>
        <li>产品</li>
        <li>项目</li>
    </ul>
    <div class="con">
        <p>内容位置</p>
        <p>内容位置</p>
        <p>内容位置</p>
        <p>内容位置</p>
        <p>内容位置</p>
        <p>内容位置</p>
        <p>内容位置</p>
        <p>内容位置</p>
        <p>内容位置</p>
        <p>内容位置</p>
        <p>内容位置</p>
        <p>内容位置</p>
        <p>内容位置</p>
        <p>内容位置</p>
        <p>内容位置</p>
        <p>内容位置</p>
        <p>内容位置</p>
        <p>内容位置</p>
        <p>内容位置</p>
        <p>内容位置</p>
        <p>内容位置</p>
        <p>内容位置</p>
        <p>内容位置</p>
        <p>内容位置</p>
        <p>内容位置</p>
        <p>内容位置</p>
        <p>内容位置</p>
    </div>
</div>

具体的我们可以修改实际的效果。

投上你的一票

本文出处:老蒋部落 » JS控制导航菜单的位置实现导航吸顶效果 | 欢迎分享( 公众号:老蒋朋友圈 )

公众号 「老蒋朋友圈」获取站长新知 / 加QQ群 【1012423279】获取商家优惠推送