JQuery 实现锚点链接之间的平滑滚动
最近发现我喜欢上玩 JQuery 了,真正接触了才体会到,JQuery 原来比我想象的要强大的多,也可能比我体会到的还要强大的多,于是把一些好玩的,酷炫的,可以代替 JS 的,统统给用上了。比如说木木介绍过的 Tab 切换效果和 Sweet Titles 标题效果,不过我感觉 Sweet Titles 和链接平移 JQuery 特效同时使用时会在 IE 下表现迟缓,所以忍痛割爱去掉了 Sweet Titles。
从 JQuery 引入今天的正题,用 JQuery 实现锚点链接之间的平滑滚动。以前介绍过一个用 JS 实现的页面锚点跳转缓冲特效,效果相当不错,可以在同一页面的锚点链接之间实现平滑的滚动,但是 JS 代码相对来说比较冗长,现在好了,只要已经加载了 JQuery,我们就可以用较为简短的代码实现相同的效果。
方法如下:
1、载入 JQuery 库,这个不用多说了吧,是前提,是必须,个人推荐 JQuery 1.2系列的版本。
2、关键代码:
$(document).ready(function() {
$('a[href*=#]').click(function() {
if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
var $target = $(this.hash);
$target = $target.length && $target || $('[name=' + this.hash.slice(1) + ']');
if ($target.length) {
var targetOffset = $target.offset().top;
$('html,body').animate({
scrollTop: targetOffset
},
1000);
return false;
}
}
});
});
$('a[href*=#]').click(function() {
if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
var $target = $(this.hash);
$target = $target.length && $target || $('[name=' + this.hash.slice(1) + ']');
if ($target.length) {
var targetOffset = $target.offset().top;
$('html,body').animate({
scrollTop: targetOffset
},
1000);
return false;
}
}
});
});
还是再要强调一下加载的顺序,JQuery 先。顺便说一下,经测试,该滚动效果在各浏览器下都兼容适用,唯有在 Opera 下表现有点怪异,无法用言语表达,用 Opera 的朋友试试看就知道了。
现在我的 JS 代码超精简,哈哈,童鞋们还有啥好玩的 JQuery 特效,速速推荐来。
-
jQuery/JavaScript 实现的异步加载图片2011年04月10日 -
精简版的 LavaLamp JQuery 滑动导航2010年06月6日 -
JQuery 鼠标滑动渐隐渐显效果2010年05月5日 -
利用 JQuery 实现图片显隐特效2010年04月8日
好啊
我也过来转转
Pingback: 简单实现WordPress锚点链接之间的平滑滚动 | 壹品集
Pingback: JQuery 实现锚点链接之间的平滑滚动 | 〃凊慡橙芯
$body = (window.opera) ? (document.compatMode == "CSS1Compat" ? $('html') : $('body')) : $('html,body');
这是 Opera 的补丁, 少了它 Opera 是直接用跳的而且画面闪烁
话说加了这个,OP表现还是非常奇怪 版本10.63
OP一向对脚本的表现不是很友好
Pingback: jQuery效果启用统计 – 静夜燃香
请教一下……今天才发现的问题,评论页的翻页默认是带锚点的
#comments
于是我现在留言簿的评论无法翻页,每次一点就直接页面上滚了。怎么办……T T
确实这样的,在我博客上也有此问题,不知道该怎么样解决??
把最前面的$('a[href*=#]')改成$('.entry a[href*=#]')就可以了~~
Pingback: WordPress 主題製作學習筆記:幫你的主題加上 jQuery 特效「圖片顯隱+平滑滾動」功能
果然 ,在opera下那个移动相当的郁闷啊
呵呵,为了大局考虑,我就忽略Opera啦
今天我用这个代码替换了博客里的代码。记录一下
嗚哇
一直忘了要加jQuery(document).ready(function($){那句在代碼的最前方,不管怎樣都不能折騰成功啊啊啊啊 
幸好在折騰第5次之後終於記住了(筆記下來)
嘿嘿,其实这句我一直不加的,可有可无啦
占个位置
不会,观望中。
看了半天,不错,就是不知道效果到底在哪……
点一下页底的“返回页顶”你就知道啦
页面顶部浮动一下,然后标题一闪?
话说刚下了个Opera10.50,点回复也闪了一下……不是你说的那个怪异现象吧?
Opera果然很
……点回复竟然要跳到页面顶部然后滚下来……
是的,OPera对JS的表现都不太好
万哥终于也被jQuery征服了!
我要征服JQuery!
呃,先把 CSS 弄懂了再折腾 JQuery
没沙发,就做个板凳了,没事儿过来学习一下,嘿嘿
大半夜的
咱来一趟也不容易
不容易!
你们两个都不容易
加油多折腾,我就爱用现成的
我用的也是现成的,自己还写不来JQ
嘿嘿,还不够呢,我还在加更多的效果
~~~玩出心得来了,还好WP没有知觉啊
JQuery玩上瘾了
还没玩够,嘿嘿
之前本来还想用jquery做一个特殊的主题出来分享的说,但是时间哪....
哈哈,jquery还是很强滴,还有更多好玩的东西哟~
猪猪有啥好玩的JQ推荐没?
有几个效果很赞的,是上次最新版jquery新增加的函数,不过我忘了怎么写了,最近比较多拿来实现AJAX效果,好玩的东西没碰到
最新版的JQ就算了,JQ1.4太巨大了,玩不起。。。
wordpress 3.0.1 默认是 1.4.2,怎样换成 旧版本的 JQ?! 写个教程?
Willin大师已经写过一篇了哟:
http://kan.willin.org/?p=1325
这个主题越来越完善了,我都不舍得换了
那你一定要把你新做的主题比这个还完善~!因为我现在的主题感觉BUG真不少~!而且还感觉里面有很多无用的代码~!应该简化简化了~!所以我也不改了,就专门等着你了~!
不要辜负我对你的期望哦!
有bug吗?我不觉得呀,这个主题我感觉挺好嘛,HOHO
哇嘎嘎...新主题也要很完善才行....直接使用就很N那种
“Tab切换效果”的链接404了?!
谢谢提醒啊,这就去改
嘿嘿,这个404还是很有喜感的嘛!
。。
又错过沙发啦孩子
jQuery 在 op 下有很多很怪异的,连页面滚动也有问题,纳闷
恩,是的,但是OP确实快
我擦,我不干啊。地板很凉的。
哈哈,我刚洗完澡回来,地板都没了呀
下次就让给我吧,我不嫌凉!
要是这一排都是我的,让你们了!
板凳坐上。
嗯?
沙发党!
挤沙发。
挤挤更健康~