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

jQuery实现导航监听事件的更多相关文章

  1. jQuery页面滚动监听事件及高级效果插件

    jQuery页面滚动监听事件及高级效果插件 1. One Page scroll (只适用于上下焦点图)http://www.thepetedesign.com/demos/onepage_scrol ...

  2. jquery四种监听事件的区别

    最近找工作被问到了jquery有哪些事件监听,都有什么区别,忽然有点想不起来了... 然后上网上查看了相关的资料,总结一下,方便大家查看,也方便自己复习! 1.bind()方法: bind(type, ...

  3. 避免jquery多次监听事件

    jQuery.event.dispatch 事件分发监听源码简单理解是将绑定的事件放入队列后进行监听,如果对一个事件多次绑定(on或者bind),事件会重复添加到队列等待jq监听,这样会导致很大资源消 ...

  4. jquery实现拖拽以及jquery监听事件的写法

    很久之前写了一个jquery3D楼盘在线选择,这么一个插件,插件很简单,因为后期项目中没有实际用到,因此,有些地方不是很完善,后面也懒得再进行修改维护了.最近放到github上面,但是也少有人问津及s ...

  5. jQuery监听事件经典例子

    关键字:jQuery监听事件经典例子  js代码:  ============================================================  $(function( ...

  6. jquery监听事件on写法以及简单的拖拽效果

    引子——关于jquery的某些写法 我先不对监听事件做解释,我们先来看下jquery的一些写法吧!我们最常用的是jquery的css()方法,相信大家都会用! 假如用css设置一个属性,我们写法如下: ...

  7. jquery的监听事件和触发事件

    监听事件 $(selector).on('Event me',function(e){ //do something }) 触发事件 $(selector).trigger('Event name') ...

  8. jquery中,使用append增加元素时,该元素的绑定监听事件失效

    举例:如果在一个<div id="resultArea"></div>中,通过append添加一个id="checkOutTip"的文本 ...

  9. jquery中,使用append增加新元素时,新增元素的绑定监听事件失效的解决办法

    $("outerSelector").on("eventType","innerSelector",function(){}); 举例:如果 ...

随机推荐

  1. TCP慢启动算法

    慢启动定义 慢启动,是传输控制协议使用的一种阻塞控制机制.慢启动也叫做指数增长期.慢启动是指每次TCP接收窗口收到确认时都会增长.增加的大小就是已确认段的数目.这种情况一直保持到要么没有收到一些段,要 ...

  2. javascript 全选与反选

    <html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    ...

  3. Block使用要点

    Block简介 Block其实包含两个部分内容 Block执行的代码,这是在编译的时候已经生成好的: 一个包含Block执行时需要的所有外部变量值的数据结构. Block将使用到的.作用域附近到的变量 ...

  4. javascript正则表达式/g与/i及/gi的意义

    regularexpression=/pattern/[switch] 这个switch就有三种值 g: 全局匹配 i: 忽略大小写 gi: 全局匹配 + 忽略大小写 JScript 语言参考 --- ...

  5. jQuery 源码分析和使用心得 - core.js

    core是jQuery的核心内容, 包含了最基础的方法, 比如我们常用的 $(selector, context), 用于遍历操作的 each, map, eq, first 识别变量类型的 isAr ...

  6. android sdk 更新问题——截止2014年6月10日有效

    因为墙的原因,很多人的sdk都更新不了,下面记录了我刚刚实现更新的方法: 进到Android SDK Manager,菜单Tools->Options..,这时弹出一个框,在这个框的下面Othe ...

  7. zookeeper参考

        ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护.名字服务.分布式同步.组服务等.     我需要运行几个 ...

  8. Orchard 源码探索(Application_Start)之异步委托调用

    2014年5月26日 10:26:31 晴 ASP.NET 接收到对应用程序中任何资源的第一个请求时,名为ApplicationManager 的类会创建一个应用程序域.应用程序域为全局变量提供应用程 ...

  9. java.util.Timer分析源码了解原理

    Timer中最主要由三个部分组成: 任务 TimerTask .  任务队列: TaskQueue queue 和 任务调试者:TimerThread thread 他们之间的关系可以通过下面图示: ...

  10. [置顶] ProcessOn:划时代性的在线作图工具

    ProcessOn是一款专业作图人员的社交网络,这里汇聚很多业界专家.学者,同时他们分享的作品又形成一个庞大的知识图库,你在学习专业知识的同时还可以结交一些志同道合的新朋友. ProcessOn核心设 ...