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

jQuery实现导航监听事件的更多相关文章
- jQuery页面滚动监听事件及高级效果插件
jQuery页面滚动监听事件及高级效果插件 1. One Page scroll (只适用于上下焦点图)http://www.thepetedesign.com/demos/onepage_scrol ...
- jquery四种监听事件的区别
最近找工作被问到了jquery有哪些事件监听,都有什么区别,忽然有点想不起来了... 然后上网上查看了相关的资料,总结一下,方便大家查看,也方便自己复习! 1.bind()方法: bind(type, ...
- 避免jquery多次监听事件
jQuery.event.dispatch 事件分发监听源码简单理解是将绑定的事件放入队列后进行监听,如果对一个事件多次绑定(on或者bind),事件会重复添加到队列等待jq监听,这样会导致很大资源消 ...
- jquery实现拖拽以及jquery监听事件的写法
很久之前写了一个jquery3D楼盘在线选择,这么一个插件,插件很简单,因为后期项目中没有实际用到,因此,有些地方不是很完善,后面也懒得再进行修改维护了.最近放到github上面,但是也少有人问津及s ...
- jQuery监听事件经典例子
关键字:jQuery监听事件经典例子 js代码: ============================================================ $(function( ...
- jquery监听事件on写法以及简单的拖拽效果
引子——关于jquery的某些写法 我先不对监听事件做解释,我们先来看下jquery的一些写法吧!我们最常用的是jquery的css()方法,相信大家都会用! 假如用css设置一个属性,我们写法如下: ...
- jquery的监听事件和触发事件
监听事件 $(selector).on('Event me',function(e){ //do something }) 触发事件 $(selector).trigger('Event name') ...
- jquery中,使用append增加元素时,该元素的绑定监听事件失效
举例:如果在一个<div id="resultArea"></div>中,通过append添加一个id="checkOutTip"的文本 ...
- jquery中,使用append增加新元素时,新增元素的绑定监听事件失效的解决办法
$("outerSelector").on("eventType","innerSelector",function(){}); 举例:如果 ...
随机推荐
- vs2010打开设计器出现错误
vs2010打开设计器出现此界面, 错误多种,还有“未将对象引用设置到对象的实例” ,我项目用到了第三方控件(没有安装,bin文件夹导入DLL文件,项目直接引用的DLL文件),看下面的堆栈信息,显 ...
- MySQL报错:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password:NO)
1.关闭mysql # service mysqld stop2.屏蔽权限 # mysqld_safe --skip-grant-table 屏幕出现: Starting demo fro ...
- 连接远程hbase长时间等待问题
确保本地保存了远程主机名: 保存远程hosts
- git 克隆本地仓库
如果要从本地仓库克隆到另一个地方使用如下命令 git clone d:/SourceRepository d:/DestinationRepository d:/SourceRepository:本地 ...
- [多线程同步练习]PV操作
看一个较为复杂的生产者-消费者问题: 问题描述 桌子上有一只盘子,每次只能向其中放入一个水果.爸爸专向盘子中放苹果,妈妈专向盘子中放橘子,儿子专等吃盘子中的橘子,女儿专等吃盘子中的苹果.只有盘子为空时 ...
- php 异步处理的gearman
1. php 是进程处理,单线程到的,没有异步机制,在一些处理花费时间较多的情况导致用户体验较差.可以使用gearman 进行异步处理. 2. gearman 是一个异步处理的socket架构. 需要 ...
- erlang学习笔记(1)
提示符erl 注释% comment 表达式123456789 * 123456789. 变量(单一赋值)X = 123456789.X.Y = X * X * X.Y.f(). 整数浮点数X = 5 ...
- Python标准库_ sys,random,time
一.sys 1. sys这个模块让你能够访问与Python解释器联系紧密的变量和函数 2. sys模块中一些重要的函数和变量 argv 命令行参数,包括脚本名称 exi ...
- 配件BOM定义限制(只定义配件的)
应用 Oracle Bill Of Materiel 层 Level Function 函数名 Funcgtion Name BOM_BOMFDBOM 表单名 Form Name BOMFDBOM ...
- 以程序的方式操纵NTFS的文件权限
Windows NT/2K/XP版本的操作系统都支持NTFS格式的文件系统,这是一个有安全性质的文件系统,你可以通过Windows的资源管理器来设置对每个目录和 文件的用户访问权限.这里我就不对NTF ...