导航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. C#格式化成小数

    datagridview某列格式化成两位小数 ............................................................................. ...

  2. C#.net连接SQLite及遇到的问题

    1.Slite简介 SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需 ...

  3. 简单的Ajax

    ajax获取时间的html代码 <head> <meta http-equiv="Content-Type" content="text/html; c ...

  4. java 多线程学习(一)

    public class ThreadA extends Thread { ; public ThreadA() { super("ThreadID:" + (++threadID ...

  5. 关于用自带摄像机录像无法捕获uri 问题解决

    这个 我自己调用,好像并没有出现什么问题. 下面是我的代码.你们可以参照一下 File file = new File(Environment.getExternalStorageDirectory( ...

  6. 幻世(OurDream)2D图形引擎易语言汉化版更新提示

    幻世引擎的易语言汉化专版到目前为止已经累积了多个BUG,其中多个BUG是影响引擎功能使用的问题,我将会在近期发布修复所有问题的更新版本(此更新版本同时也将会支持最新的对加入的粒子系统的支持),敬请各位 ...

  7. Linux网络管理——TCP/IP四层模型

    1. 网络基础 .note-content {font-family: "Helvetica Neue",Arial,"Hiragino Sans GB",&q ...

  8. $.browser.msie jq解析不出来的原因及解决方法

    检查是否为 IE6:// Oldif ($.browser.msie && 7 > $.browser.version) {}// Newif ('undefined' == t ...

  9. 影响世界的IT

    MIT BBS上说微软电话面试的一道题就是"Who do you think is the best coder,and why?”.我觉得挺有意思的,也来凑个热闹.排名不分先后. 1.Bi ...

  10. setPluginsEnabled(true) 谁知道android的4.3之后为什么会报错

    我也是最近才遇到这个问题的,查了下资料,setPluginEnable已经弃用了,使用webSettings.setPluginState(WebSettings.PluginState.ON);可以 ...