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 Excel操作知识点
Apr 24 Javascript
jquery 追加tr和删除tr示例代码
Sep 12 Javascript
JQuery中阻止事件冒泡几种方式及其区别介绍
Jan 15 Javascript
js多功能分页组件layPage使用方法详解
May 19 Javascript
Bootstrap学习笔记之js组件(4)
Jun 12 Javascript
JavaScript 函数模式详解及示例
Sep 07 Javascript
jQuery实现的分页功能示例
Jan 22 Javascript
jQuery实现获取form表单内容及绑定数据到form表单操作分析
Jul 03 jQuery
基于Bootstrap下拉框插件bootstrap-select使用方法详解
Aug 07 Javascript
JavaScript 性能提升之路(推荐)
Apr 10 Javascript
微信小程序实现搜索功能
Mar 10 Javascript
js基础语法与maven项目配置教程案例
Jul 15 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
肝肠寸断了解下!盘点史上最伤心的十大动漫
2020/03/04 日漫
php 生成文字png图片的代码
2011/04/17 PHP
ThinkPHP基本的增删查改操作实例教程
2014/08/22 PHP
利用“多说”制作留言板、评论系统
2015/07/14 PHP
PHP递归遍历文件夹去除注释并压缩php源代码的方法示例
2018/05/23 PHP
PHP生成短网址的思路以及实现方法的详解
2019/03/25 PHP
一个加密JavaScript的开源工具PACKER2.0.2
2006/11/04 Javascript
用javascript实现的支持lrc歌词的播放器
2007/05/17 Javascript
JQUERY THICKBOX弹出层插件
2008/08/30 Javascript
基于jquery用于查询操作的实现代码
2010/05/10 Javascript
Date对象格式化函数代码
2010/07/17 Javascript
JQuery 弹出框定位实现方法
2010/12/02 Javascript
修改或扩展jQuery原生方法的代码实例
2015/01/13 Javascript
javascript实现checkbox全选的代码
2015/04/30 Javascript
JavaScript+html5 canvas制作的百花齐放效果完整实例
2016/01/26 Javascript
form+iframe解决跨域上传文件的方法
2016/11/18 Javascript
Jquery Easyui菜单组件Menu使用详解(15)
2016/12/18 Javascript
详解微信小程序入门五: wxml文件引用、模版、生命周期
2017/01/20 Javascript
Angular实现的敏感文字自动过滤与提示功能示例
2017/12/29 Javascript
移动端滑动切换组件封装 vue-swiper-router实例详解
2018/11/25 Javascript
使用 vue 实例更好的监听事件及vue实例的方法
2019/04/22 Javascript
vue路由教程之静态路由
2019/09/03 Javascript
[55:35]VGJ.S vs Mski Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
Python爬虫番外篇之Cookie和Session详解
2017/12/27 Python
Python日期时间对象转换为字符串的实例
2018/06/22 Python
Python socket实现的简单通信功能示例
2018/08/21 Python
Python实现的各种常见分布算法示例
2018/12/13 Python
flask的orm框架SQLAlchemy查询实现解析
2019/12/12 Python
Pytorch之卷积层的使用详解
2019/12/31 Python
美国女性卫生用品公司:Thinx
2017/06/30 全球购物
C和C++经典笔试题附答案解析
2014/08/18 面试题
心理健康教育制度
2014/01/27 职场文书
教师爱岗敬业演讲稿
2014/05/05 职场文书
娱乐节目策划方案
2014/06/10 职场文书
党员贯彻十八大精神思想汇报范文
2014/10/25 职场文书
Kubernetes部署实例并配置Deployment、网络映射、副本集
2022/04/01 Servers