模拟导航栏吸顶的效果

2018-03-16  本文已影响0人  ConRon

1.css部分

body {padding: 0px;margin: 0;}
.wrap {width: 600px;height: 500px;padding: 0 20px;}
#nav {width: 603px;height: 40px;background: #39f;color: #fff;line-height: 40px;text-align: center;padding: 0;margin: 0;list-style: none;overflow: hidden;}
#nav li { float: left;width: 200px;height: 60px;border-right: 1px solid #fff;}
.fix {position: fixed;top: 0px;left: 20px;}

2.html部分

<div class="wrap">
        <h1>文章标题</h1>
        <ul id="nav">
            <li>首页</li>
            <li>导航1</li>
            <li>导航2</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>

3.js部分

<script type="text/javascript">
        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";
            }
        }
    </script>
上一篇下一篇

猜你喜欢

热点阅读