北极寒流 » 网络资源 » 简单实现WordPress锚点链接之间的平滑滚动 - 2010.12.02

简单实现WordPress锚点链接之间的平滑滚动

简单实现WordPress锚点链接之间的平滑滚动,采用JQuery形式,故为网站引入JQuery支持是前提条件。由于此文只为备忘,所以废话也就不多说了,不过还是要再要强调一下加载的顺序,JQuery 先。

下面直接上锚点链接之间的平滑滚动的JQuery代码:

$(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;
}
}
});
});

经测试,该滚动效果在各浏览器下都兼容适用,唯有在 Opera 下表现有点怪异,无法用言语表达。还有一点问题就是如果你的评论页的翻页默认是带锚点的#comments,于是会造成留言簿的评论无法翻页,每次一点就直接页面上滚了,而且壹品集博客还采用了评论贴图的代码中也带有#链接,也会造成这样的情况。解决办法:

把最前面的$('a[href*=#]')改成$('.entry a[href*=#]')就可以了~~

效果见亿品元素博客文章页面。
参考原文:http://wange.im/smooth-scroll-with-jquery.html