jQuery制作的页内锚点平滑跳转
来源:互联网 发布:驷惠软件使用方法 编辑:程序博客网 时间:2024/06/17 03:18
http://www.cnblogs.com/miqi2214/archive/2009/04/30/1446878.html
很久前看一欧美网站居然是个横版的,很宽很雷人,但使用了锚点平滑跳转效果使得整个浏览体验也是很愉快的。通常国内很多大网站页面都是纵向的,很高很累人,因此也会用锚点平滑效果减轻浏览负担。综上所述,那就干脆搞个更雷人的效果,支持横版和纵版的锚点平滑跳转效果吧
看着很强大的样子哦,其实是声大点小。哪是为什么呢?因为用了jquery,代码就自然很简单咯。
Demo地址:懒人的小说
先看如何调用:
1 $(document).ready(function(){
2 $(".goTop").anchorGoWhere({target:1});
3 $(".goDown").anchorGoWhere({target:1});
4 $(".goNext").anchorGoWhere({target:1});
5 $(".goFront").anchorGoWhere({target:1});
6 $(".goVertical").anchorGoWhere({target:2});
7 });
2 $(".goTop").anchorGoWhere({target:1});
3 $(".goDown").anchorGoWhere({target:1});
4 $(".goNext").anchorGoWhere({target:1});
5 $(".goFront").anchorGoWhere({target:1});
6 $(".goVertical").anchorGoWhere({target:2});
7 });
$("...")部分表示通过样式名获得该类的a标签,该样式名没有具体的样式定义(也可以根据实际需要定义),只为为了便于查找同类标签而已。anchorGoWhere就是锚点跳转的实现方法,里面的target参数为跳转的类型,如果是1,则是纵向的;如果是2,则是横向的。
锚点起点部分:
1 <a href="#menu1" class="goDown">菜单一</a>
2 <a href="#menu2" class="goNext">懒人们,点这里看第二章节</a>
3 <a href="#menu1" class="goFront">怎么了,前面一章忘记了?</a>
4 <a href="#right" class="goVertical">还没看过瘾,我带你到右边去看看-></a>
5 <a href="#body" class="goTop">返回顶部</a></span>
2 <a href="#menu2" class="goNext">懒人们,点这里看第二章节</a>
3 <a href="#menu1" class="goFront">怎么了,前面一章忘记了?</a>
4 <a href="#right" class="goVertical">还没看过瘾,我带你到右边去看看-></a>
5 <a href="#body" class="goTop">返回顶部</a></span>
锚点目的地:
<legend id="menu1">菜单一的内容</legend>
<body id="body">
<body id="body">
由“锚点起点”和“锚点目的地”代码可以看到,一切代码都是很常规的页内锚点设置。我们没有因为扩张平滑效果而强加一些多余的配置代码,同时当页面js失效后,这些锚点还是可以按默认的方式跳转。这或多或少还是符合了预留退路的js编程原则。
最后看看完整的程序代码:
1 jQuery.fn.anchorGoWhere = function(options){
2 var obj = jQuery(this);
3 var defaults = {target:0, timer:1000};
4 var o = jQuery.extend(defaults,options);
5 obj.each(function(i){
6 jQuery(obj[i]).click(function(){
7 var _rel = jQuery(this).attr("href").substr(1);
8 switch(o.target){
9 case 1:
10 var _targetTop = jQuery("#"+_rel).offset().top;
11 jQuery("html,body").animate({scrollTop:_targetTop},o.timer);
12 break;
13 case 2:
14 var _targetLeft = jQuery("#"+_rel).offset().left;
15 jQuery("html,body").animate({scrollLeft:_targetLeft},o.timer);
16 break;
17 }
18 return false;
19 });
20 });
21 };
2 var obj = jQuery(this);
3 var defaults = {target:0, timer:1000};
4 var o = jQuery.extend(defaults,options);
5 obj.each(function(i){
6 jQuery(obj[i]).click(function(){
7 var _rel = jQuery(this).attr("href").substr(1);
8 switch(o.target){
9 case 1:
10 var _targetTop = jQuery("#"+_rel).offset().top;
11 jQuery("html,body").animate({scrollTop:_targetTop},o.timer);
12 break;
13 case 2:
14 var _targetLeft = jQuery("#"+_rel).offset().left;
15 jQuery("html,body").animate({scrollLeft:_targetLeft},o.timer);
16 break;
17 }
18 return false;
19 });
20 });
21 };
是不是很简单啊?其实类似这种锚点平滑跳转的代码,网上一搜就有很多。但要用得顺手还是自己根据实际需要写的方便,何况这个也不难。这个Demo在firefox3、Opera9、IE6/7/8、safari4下测试通过,经朋友测试chrome不行,但我一时也没看出个究竟。如果哪位朋友知道原因,麻烦告诉我。
Demo地址:懒人的小说
- jQuery制作的页内锚点平滑跳转
- jquery页内锚点平滑跳转实现代码
- jQuery实现页面内锚点平滑跳转
- jQuery 锚点跳转滚动条平滑滚动
- jQuery实现页面内锚点平滑跳转 滑动效果
- 跳转到页面的指定位置, 锚点平滑跳转
- 制作平滑的路径-贝塞尔曲线
- 平滑的 CSS3 和 jquery 过渡动画
- jQuery的平滑滑出菜单
- jQuery实现的平滑滚动选项卡
- 锚点平滑跳转
- 页面(Activity)之间的平滑跳转及封装
- Jquery Mobile的跳转
- 制作按钮点击的平滑的过渡效果
- jquery实现页面内链接锚点跳转平滑滚动效果
- 用jQuery为跳转链接锚点添加平滑滚动动画效果(如回到顶部
- 根据<h*>标签JavaScript/jQuery自动生成文章目录(页面内导航)且平滑跳转
- CSS3制作各种平滑过渡的动画效果
- Java 23种设计模式的有趣见解
- http://home.51cto.com/index.php?s=/space/6435861
- 解决Centos LINUX下乱码问题
- How to get root privileges?
- 如何实现ArcGIS符号库的合并以及延伸问题
- jQuery制作的页内锚点平滑跳转
- 将一个5*5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素
- 用g++编译生成动态连接库*.so的方法及连接
- 工作心得在此
- Linux TCP
- find && xargs
- 流式计算之Storm简介
- Jquery主要控件的取值、赋值,包括textbox,button,lable,radio,checkbox,selected
- sqlserver 2005 kill 连接