JQuery简单实现锚点链接的平滑滚动


Posted in Javascript onMay 03, 2015

一般使用锚点来跳转到页面指定位置的时候,会生硬地立即跳转到指定位置,但是有些时候我们想要平滑地过渡到指定的位置,那么可以使用JQuery简单的实现这个效果:

比如,这里我们将通过点击<a>标签跳转到 id为content的指定位置那里。

<a id="turnToContent" href="#content"></a>

然后呢,就在我们想要的位置设置id为content的内容块,这里用一个div模拟一篇不像文章的文章。最好将此div放在靠后的位置,这样效果就很明显一点,如果只是测试一下这个效果,可以用简单粗暴的方法,在其前面放很多个<p>标签即可。

<div id="content">
<h2>
<a href="###">HTML5</a>
</h2>
<p>
html5html5html5
</p>
<p class="addMes">标签: <span>HTML5</span><small>2015年4月19日</small></p>
</div>

最后就是用JQuery来实现平滑过渡的效果了:

$('#turnToContent').click(function () {
$('html, body').animate({
scrollTop: $($.attr(this, 'href')).offset().top
}, 500);
return false;
});

搞定了!

下面我们来继续改进一下,

$(function(){  
  $('a[href*=#],area[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;
      }
    }
  });
})

改进后的代码的好处是点击锚点链接平滑滚动到锚点,并且浏览器URL后缀不带有锚点字样,使用的过程中基本不用修改以上代码即可实现。

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
JavaScript学习笔记(二) js对象
Oct 25 Javascript
jQuery中jqGrid分页实现代码
Nov 04 Javascript
用Js实现的动态增加表格示例自己写的
Oct 21 Javascript
Node.js(安装,启动,测试)
Jun 09 Javascript
JS实现鼠标经过好友列表中的好友头像时显示资料卡的效果
Jul 02 Javascript
一个不错的仿携程自定义数据下拉选择select
Sep 01 Javascript
基于jQuery实现复选框的全选 全不选 反选功能
Nov 24 Javascript
laypage分页控件使用实例详解
May 19 Javascript
工作中比较实用的JavaScript验证和数据处理的干货(经典)
Aug 03 Javascript
JS瀑布流实现方法实例分析
Dec 19 Javascript
Vuex模块化实现待办事项的状态管理
Mar 15 Javascript
在Vue中使用highCharts绘制3d饼图的方法
Feb 08 Javascript
jQuery中 attr() 方法使用小结
May 03 #Javascript
浅谈被jQuery抛弃的函数及替代函数
May 03 #Javascript
jQuery的几个我们必须了解的特点
May 03 #Javascript
jQuery的css() 方法使用指南
May 03 #Javascript
面向切面编程(AOP)的理解
May 01 #Javascript
yui3的AOP(面向切面编程)和OOP(面向对象编程)
May 01 #Javascript
使用AOP改善javascript代码
May 01 #Javascript
You might like
ThinkPHP CURD方法之table方法详解
2014/06/18 PHP
PHP身份证校验码计算方法
2016/08/10 PHP
javascript 数组排序函数
2009/08/20 Javascript
JavaScript 开发规范要求(图文并茂)
2010/06/11 Javascript
通过上下左右键和回车键切换光标实现代码
2013/03/08 Javascript
div模拟滚动条效果示例代码
2013/10/16 Javascript
node+express+jade制作简单网站指南
2014/11/26 Javascript
js获取当前日期时间及其它操作汇总
2015/04/17 Javascript
JS实现的仿东京商城菜单、仿Win右键菜单及仿淘宝TAB特效合集
2015/09/28 Javascript
AngularJs 国际化(I18n/L10n)详解
2016/09/01 Javascript
巧用canvas
2017/01/21 Javascript
Bootstrap模态窗口源码解析
2017/02/08 Javascript
详解使用webpack构建多页面应用
2017/12/21 Javascript
jquery点击回车键实现登录效果并默认焦点的方法
2018/03/09 jQuery
Nodejs 发布自己的npm包并制作成命令行工具的实例讲解
2018/05/15 NodeJs
JavaScript相等运算符的九条规则示例详解
2019/10/20 Javascript
24个ES6方法解决JS实际开发问题(小结)
2020/05/31 Javascript
JS 5种遍历对象的方式
2020/06/16 Javascript
urllib2自定义opener详解
2014/02/07 Python
django 将model转换为字典的方法示例
2018/10/16 Python
对pandas中时间窗函数rolling的使用详解
2018/11/28 Python
Python实现中值滤波去噪方式
2019/12/18 Python
基于python requests selenium爬取excel vba过程解析
2020/08/12 Python
python中zip()函数遍历多个列表方法
2021/02/18 Python
HTML5网页音乐播放器的示例代码
2017/11/09 HTML / CSS
四方通行旅游网:台湾订房、出国旅游
2017/09/20 全球购物
英国第一家领先的在线处方眼镜零售商:Glasses Direct
2018/02/23 全球购物
德国综合购物网站:OTTO
2018/11/13 全球购物
荣耀俄罗斯官网:HONOR俄罗斯
2020/10/31 全球购物
甲方资料员岗位职责
2013/12/13 职场文书
会计助理岗位职责
2014/02/17 职场文书
幼儿园优秀班主任事迹材料
2014/05/14 职场文书
十佳标兵事迹材料
2014/08/18 职场文书
大学生考试作弊检讨书1000字
2014/10/14 职场文书
2014年学生会工作总结范文
2014/11/07 职场文书
apache虚拟主机配置的三种方式(小结)
2022/07/23 Servers