jQuery下页面锚点的平滑跳转
页面锚点的用途很多,常见于问答、百科类长页面!
关于锚点,看下面的两种锚点对:
超链接锚点:<a href="#comment">查看评论</a> <a name="comment"></a> ID锚点: <a href="#comment">查看评论</a> <h2 id="comment">评论列表</h2>
前者a-name形式较常用,但后者ID锚点更易用,且较前者节省了一段name代码,根据各自喜好吧!
$("html,body").animate({scrollTop: $("#comment").offset().top}, 1000);
注释一下,也方便日后查阅:
animate() 是jQuery自定义动画方法,W3School传送门;
scrollTop() 返回或设置匹配元素的滚动条的垂直位置,W3School传送门;
$("#comment").offset().top 表示id为comment的jQuery对象相对于页面顶部的偏移量;
1000表示平滑滚动动画执行速度为1000毫秒(1秒)。
给一段常见的返回页面顶部的代码示例:
<!DOCTYPE html> <html> <head> ...... <script src="http://apps.bdimg.com/libs/jquery/1.11.1/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function(){ $("#foot a").click(function(){//可替换为:$(".yjw").click(function(){ var href = $(this).attr("href"); var pos = $(href).offset().top; $("html,body").animate({scrollTop: pos}, 1000); return false; }); }); </script> </head> <body> <div id="top"> ...... </div> ...... <div id="foot"> <a href="#top" class="yjw">点此平滑回到顶部</a> </div>
注意,JS代码要在页面加载时预读:
$(document).ready(function(){ }); 或 $(function(){ });
扩展阅读:Google上的jQuery各版本引用地址集合。