锚点链接默认都是直接跳转,缺乏平滑移动的效果,这段jq代码可以放在jq文件末尾作为函数调用,使得锚点移动变得平滑jQuery.fn.anchorGoWhere = function(options){
锚点链接默认都是直接跳转,缺乏平滑移动的效果,这段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});})