jquery手写实现单页滚动导航
效果说明:点击tab导航,页面滑动到下方相应板块。并且当页面通过鼠标滚动下去时,上方的tab也可以自动切换到当前位置的板块上。


代码说明:js中对两个动作分别写,一个是tab点击下滑到相应板块位置;一个是鼠标滚动下去的时候tab判定当前页面滚动高度切换tab。
js:
$(document).ready(function(){
    $('.switch-tab>li').click(function(){
        var s=$('.switch-tab>li').index(this);
        $('body,html').animate({scrollTop:$('.tab-content>.tab-panel:eq('+s+')').offset().top-50},200);
    });
    var DT=$('.switch-tab').offset().top;
    $(window).scroll(function(){
        var wt=$(window).scrollTop(),l=$('.tab-content>.tab-panel'),s=l.length-1;
        if(wt<DT||wt>=l.last().offset().top+l.last().height()+50){
            $('.switch-tab').removeClass('fixed');
            $('.switch-tab>li:first').addClass('active').siblings().removeClass('active');
        }else{
            $('.switch-tab').addClass('fixed');
            for(var i=0;i<s;i++){
                if(wt>=parseInt(l.eq(i).offset().top-50)&&wt<parseInt(l.eq(i+1).offset().top-50)){
                    s=i;
                    break;
                }
            }
            $('.switch-tab>li:eq('+s+')').addClass('active').siblings().removeClass('active');
        }
    });
});
html:
<div class="switch-nav">
<ul class="switch-tab">
<li><a href="javascript:; ">拉托红酒</a></li>
<li><a href="javascript:; ">法国酒庄风情</a></li>
<li><a href="javascript:; ">红酒包装</a></li>
<li><a href="javascript:; ">个性定制</a></li>
</ul>
</div> <div class="tab-content">
<div class="tab-panel" id="cpxq">
1111
</div>
<div class="tab-panel" id="cpxq">
222
</div>
<div class="tab-panel" id="cpxq">
333
</div>
<div class="tab-panel" id="cpxq">
444
</div>
</div>
jquery手写实现单页滚动导航的更多相关文章
- jquery单页网站导航插件One Page Nav
		
这是一个轻量级的jQuery的单页网站导航插件.增加了单击后平滑滚动导航和当你浏览不同的部分时自动选择正确的导航项. changeHash: false, 改变当用户单击导航,就改变changeHas ...
 - One Page Scroll – 实现苹果风格的单页滚动效果
		
单页滚动网站已经被广泛使用了有一段时间了,它们对于快速提供信息是很有用的.One Page Scroll 是一个 jQuery 插件,简化了创建此类网站的步骤,只需创建 HTML 结构,进行简单设置, ...
 - Fixed Responsive Nav – 响应式的单页网站导航插件
		
Fixed Responsive Nav 是一个响应式的,固定的,触摸友好的单页网站导航插件,响应式导航,流畅的动画滚动.该项目采用渐进增强构建,支持工作在 IE6 及以上版本的浏览器. 你可以给导航 ...
 - jquery自己手写表单验证
		
<script type="text/javascript" src="../jquery-1.8.3.js"></script> / ...
 - jQuery补充之jQuery扩展/form表单提交/滚动菜单
		
jQuery扩展 为了避免重复造轮子,能高效使用别人的代码,所以有了扩展. jQuery扩展有两种方式: 自执行函数方式 定义函数,并执行函数. 自执行函数: (function(jq){ jq.ex ...
 - jquery 手写一个简单浮窗的反面教材
		
前言 初学jquery写的代码,陈年往事回忆一下. 正文 介绍一下大体思路 思路: 1.需要控制一块区域,这块区域一开始是隐藏的. 2.这个区域需要关闭按钮,同时我需要写绑定事件,关闭的时候让这块区域 ...
 - jquery手写焦点轮播图-------解决最后一张无缝跳转第一张的问题
		
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
 - jQuery手写几个常见的滑动下拉菜单 分分秒秒学习JS
		
一般的企业网站再我们再实际工作中,有些特效,用jQuery来做,显得极其简单,除非一些大的公司,需要封装自己的类. 今天,我们讲解jQuery入门知识,来写几个简单jQuery滑动下拉菜单.感受一下j ...
 - js+jquery手写弹出提示框
		
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
 
随机推荐
- 10款.net 图形插件
			
在如今这个读图时代,图形图表的可视化数据表现形式已成为一种趋势.因为图表能直观的展示信息.对比和趋势等,所以许多项目开发中都需要用到图表控件,而很多图表控件都是在.NET平台下开发的,今天就为大家推荐 ...
 - 覆盖问题:最大覆盖问题(Maximum Covering Location Problem,MCLP)和集覆盖问题(Location Set Covering Problem,LSCP)
			
集覆盖问题研究满足覆盖所有需求点顾客的前提下,服务站总的建站个数或建 设费用最小的问题.集覆盖问题最早是由 Roth和 Toregas等提出的,用于解决消防中心和救护车等的应急服务设施的选址问题,他们 ...
 - 【jQuery】 jQuery上下飘动效果
			
jQuery实现图片上下飘动效果 function moveRocket() { $(".smallShip") //2000毫秒内top = top + 60: .animate ...
 - 显式意图启动一个Activity
			
显式意图主要是通过指定包名和类名开启一个组件,主要用于安全性要求高的,且不想被其他应用开启,可以不配置应用过滤器. 1.创建意图对象 Intent intent = new Intent(); 2.指 ...
 - 线段树 poj 3667
			
1-n线段 m个操作 1 a 是否可找到连续a个空位子 有输出最左边(然后使这一段被占)没有0 2 a ,b a~b区间变成未使用 #include<stdio.h> #include& ...
 - 【cocos2d-x + Lua(2) C++和lua数据通讯之间的互调】
			
我们主要解决如下几个问题: 转载注明出处:http://www.cnblogs.com/zisou/p/cocos2dx-lua2.html 1,C++如何获取Lua里面的一个变量值? 2,C++如何 ...
 - HTML5图形图像处理技术研究
			
摘要:图形图像处理平台大部分是传统的C/S架构的桌面应用程序,维护困难,共享性差,而B/S架构的Web程序具有易维护.易共享的优点.本文研究了基于HTML5的Web图形图像处理技术,用HTML5实现了 ...
 - How to stop pycharm show files in project in red color?
			
You can change the file color to whatever you want. File > Settings > Editor > Colors&F ...
 - 动手实验iptables的NAT功能实现流量穿透
			
1.NAT和iptables理论见: http://lustlost.blog.51cto.com/2600869/943110 2.引子 近期,有同事抱怨说数据入库时,由于数据库所在的服务器只有内网 ...
 - 正则去掉img标签的style样式
			
$body = '<div style="width:100px; height:20px;"><img alt="test" src=&qu ...