您的位置:首页 > Web前端 > JQuery

页面锚点平滑滚动jQuery实现

2016-05-30 00:00 381 查看
摘要: jQuery、锚点、平滑滚动

锚点链接默认都是直接跳转,缺乏平滑移动的效果,这段jq代码可以放在jq文件末尾作为函数调用,使得锚点移动变得平滑

[code=hljs language-javascript]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标签中执行该方法即可

[code=language-html]<a href="#one" class="link">aaa</a>

$(function(){
$('.link').anchorGoWhere();
})


关于参数该方法有两个参数:target和timer

target为1是默认值,表示上下滑动,2是指左右滑动

timer是滑动速度,单位是毫秒,默认为1000

对应写法如下:

[code=language-javascript]$(function(){
$('.link').anchorGoWhere({target:2, timer:3000});
})
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jQuery 锚点 平滑滚动