导航栏点击滚动

HTML:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

</head>
<body>
<div style="width: 1200px;margin: 0 auto 1000px auto;">
    <div style="height: 100px;"></div>
    <div class="divContainerContent">
        <ul class="divContainer">
            <li id="div01">div01</li>
            <li id="div02">div02</li>
            <li id="div03">div03</li>
            <li id="div04">div04</li>
        </ul>
    </div>
    <div class="div01 divList"></div>
    <div class="div02 divList"></div>
    <div class="div03 divList"></div>
    <div class="div04 divList"></div>
</div>

</body>
</html>

JS:

<script>
    $(document).ready(function () {
        // divContainer到顶部的距离
        var divContainer = $(".divContainer").offset().top;
        //div01到顶部的距离
        var div01Height = $(".div01").offset().top - $(".div01").height();
        var divContainerHeight = $(".divContainer").height();
        var div02Height = $(".div02").offset().top - $(".div02").height();
        var div03Height = $(".div03").offset().top - $(".div03").height();
        var div04Height = $(".div04").offset().top - $(".div04").height();
        $("#div01").click(function () {
            $('html,body').animate({scrollTop: div01Height-divContainerHeight}, 500);
            $(this).addClass("divActive").siblings().removeClass("divActive");
        });
        $("#div02").click(function () {
            $('html,body').animate({scrollTop: div02Height-divContainerHeight}, 500);
            $(this).addClass("divActive").siblings().removeClass("divActive");
        });
        $("#div03").click(function () {
            $('html,body').animate({scrollTop: div03Height-divContainerHeight}, 500);
            $(this).addClass("divActive").siblings().removeClass("divActive");
        });
        $("#div04").click(function () {
            $('html,body').animate({scrollTop: div04Height-divContainerHeight}, 500);
            $(this).addClass("divActive").siblings().removeClass("divActive");
        });
        $(document).scroll(function () {
            var scrollHeight = $(document).scrollTop();  //滚动高度
            if(scrollHeight>=divContainer){
                $(".divContainerContent").addClass("divContainerActive");
            }else{
                $(".divContainerContent").removeClass("divContainerActive");
                $("#div01").removeClass("divActive");
            }
        //    页面到顶部的高度-滚动的高度
            if(div01Height-scrollHeight<=divContainerHeight){
                $("#div01").addClass("divActive").siblings().removeClass("divActive");
            }
            if(div02Height-scrollHeight<=divContainerHeight){
                $("#div02").addClass("divActive").siblings().removeClass("divActive");
            }
            if(div03Height-scrollHeight<=divContainerHeight){
                $("#div03").addClass("divActive").siblings().removeClass("divActive");
            }
            if(div04Height-scrollHeight<=divContainerHeight){
                $("#div04").addClass("divActive").siblings().removeClass("divActive");
            }
        });
    });
</script>

CSS:

body{
            font:12px "microsoft yahei",Arial,Helvetica,sans-serif;
            color:#000304;
            margin:0;
            background-color: #ffffff;
            min-width: 1350px;
        }
        p,h1,h2,h3,h4,h5,h6,ul,ol,dl,dd{
            margin:0;
            padding:0;
            list-style:none;
        }
        .divContainerContent{width: 100%;}
        .divContainer{width: 1200px;height: 50px;margin: 0 auto;}
        .divContainerActive{position: fixed;top:0;left: 0;}
        .divContainer li{float: left;width: 100px;height:50px;line-height: 50px;text-align: center;font-size: 15px;background: darkgray;color: #fff;margin-right: 15px;cursor: pointer;}
        .divContainer li.divActive{color: red;}
        .divList{width: 100px;height: 50px;margin-top: 200px;}
        .div01{background: red;}
        .div02{background: aqua;}
        .div03{background: chartreuse;}
        .div04{background: darkviolet;}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值