锚点链接默认都是直接跳转,缺乏平滑移动的效果,这段jq代码可以放在jq文件末尾作为函数调用,使得锚点移动变得平滑
jQuery.fn.anchorGoWhere = function(options){
var obj = jQuery(this);
var defaults = {target:1, timer:1000};
var o = jQuery.extend(defaults,options);
obj.each(function(i){
jQuery(obj[i]).click(function(){
var _rel = jQuery(this).attr("href").substr(1);
switch(o.target){
case 1:
var _targetTop = jQuery("#"+_rel).offset().top;
jQuery("html,body").animate({scrollTop:_targetTop},o.timer);
break;
case 2:
var _targetLeft = jQuery("#"+_rel).offset().left;
jQuery("html,body").animate({scrollLeft:_targetLeft},o.timer);
break;
}
return false;
});
});
};
调用的时候只需要在对应的链接a标签中执行该方法即可
<a href="#one" class="link">aaa</a>
$(function(){
$('.link').anchorGoWhere();
})
关于参数该方法有两个参数:target和timer
target为1是默认值,表示上下滑动,2是指左右滑动
timer是滑动速度,单位是毫秒,默认为1000
对应写法如下:
$(function(){
$('.link').anchorGoWhere({target:2, timer:3000});
})