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是根据页面实际情况调节的值,主要是为了避免滚动事件和鼠标点击事件保持一致!

    耐得住寂寞,守得住繁华
  • 相关阅读:
    PHP面向对象(一)
    Linux(九)LNMP环境Nginx服务器
    Linux(八)Apache服务器
    [转]PHP高手干货分享:不能不看的50个细节!
    Linux(七)LAMP环境搭建
    Linux(六)Samba服务器与防火墙
    Linux(五)服务和进程管理
    Linux(四)用户和用户组管理
    Linux(三)安装包
    Linux(二)Linux常用命令
  • 原文地址:https://www.cnblogs.com/djdliu/p/4897659.html
Copyright © 2011-2022 走看看