zoukankan      html  css  js  c++  java
  • jQuery实现导航监听事件

    导航html如下

    <div class="main_nav">
        <a class="nav_01 active_01" href="javascript:;"></a>
        <a class="nav_02" href="javascript:;"></a>
        <a class="nav_03"  href="javascript:;"></a>
        <a class="nav_04"  href="javascript:;"></a>
    </div>

    导航css如下

    <style>
            .main_nav{ width:50px; height:260px; position:fixed; bottom:90px; left:200px;}
            .main_nav a{ display:block; width:70px; height:70px; background:#dedede; margin-top:1px; text-align:center; line-height:50px; font-size:18px; background:url(img/nav_bg.png) no-repeat; }
            .main_nav .nav_01{ background-position:0px 0px;}
            .main_nav .nav_02{ background-position:0px -71px;}
            .main_nav .nav_03{ background-position:0px -143px;}
            .main_nav .nav_04{ background-position:0px -215px;}
            .main_nav .active{ background-position-x:-75px;}
            .main_nav .active_01{ background-position:-75px 0px;}
            .main_nav .active_02{ background-position:-75px -71px;}
            .main_nav .active_03{ background-position:-75px -143px;}
            .main_nav .active_04{ background-position:-75px -215px;}
       </style>

    js代码如下

    $(function(){
            $(window).scroll(function() {
                var scrollHight=$(window).scrollTop();
                var mainHight01=$(".main_01").offset().top;
                var mainHight02=$(".main_02").offset().top;
                var mainHight03=$(".main_03").offset().top;
                var mainHight04=$(".main_04").offset().top;
            if(scrollHight<mainHight02){
                $(".nav_01").addClass("active_01");
                $(".nav_02").removeClass("active_02");
                $(".nav_03").removeClass("active_03");
                $(".nav_04").removeClass("active_04");
                }    
            if(scrollHight>mainHight02&&scrollHight<mainHight03){
                $(".nav_01").removeClass("active_01");
                $(".nav_02").addClass("active_02");
                $(".nav_03").removeClass("active_03");
                $(".nav_04").removeClass("active_04");
                }
            if(scrollHight>mainHight03&&scrollHight<mainHight04){
                $(".nav_03").addClass("active_03");
                $(".nav_02").removeClass("active_02");
                $(".nav_01").removeClass("active_01");
                $(".nav_04").removeClass("active_04");
                }
            if(scrollHight>mainHight04){
                $(".nav_04").addClass("active_04");
                $(".nav_02").removeClass("active_02");
                $(".nav_03").removeClass("active_03");
                $(".nav_01").removeClass("active_01");
                }
            });
        $(".main_nav a").each(function(index, element) {
            $(this).click(function(){
                $("html,body").animate({scrollTop:$(".main_0"+(index+1)).offset().top+20},10);
            });
        });
    }); 

    这里需要说明的是$("html,body").animate({scrollTop:$(".main_0"+(index+1)).offset().top+20},10)这段话里的“.main_0”,这个是在你的页面中需要切换导航锚点的div中需要添加的类名,需要按此格式依次添加如main_01、main_02、main_03

    $(".main_0"+(index+1)).offset().top+20中的+20是根据页面实际情况调节的值,主要是为了避免滚动事件和鼠标点击事件保持一致!

    耐得住寂寞,守得住繁华
  • 相关阅读:
    SSL JudgeOnline 1194——最佳乘车
    SSL JudgeOnline 1457——翻币问题
    SSL JudgeOnlie 2324——细胞问题
    SSL JudgeOnline 1456——骑士旅行
    SSL JudgeOnline 1455——电子老鼠闯迷宫
    SSL JudgeOnline 2253——新型计算器
    SSL JudgeOnline 1198——求逆序对数
    SSL JudgeOnline 1099——USACO 1.4 母亲的牛奶
    SSL JudgeOnline 1668——小车载人问题
    SSL JudgeOnline 1089——USACO 1.2 方块转换
  • 原文地址:https://www.cnblogs.com/djdliu/p/4897659.html
Copyright © 2011-2022 走看看