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 页面编码与浏览器类型判断代码
Jun 03 Javascript
js正文内容高亮效果的实现方法
Jun 30 Javascript
jQuery实现的背景颜色渐变动画效果示例
Mar 24 jQuery
基于vue1和vue2获取dom元素的方法
Mar 17 Javascript
JavaScript原型对象原理与应用分析
Dec 27 Javascript
vue3.0 搭建项目总结(详细步骤)
May 20 Javascript
layer.open组件获取弹出层页面变量、函数的实例
Sep 25 Javascript
vuex存储token示例
Nov 11 Javascript
简单了解JS打开url的方法
Feb 21 Javascript
实例讲解JavaScript 计时事件
Jul 04 Javascript
Element Alert警告的具体使用方法
Jul 27 Javascript
js实现表格数据搜索
Aug 09 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
一个简单的域名注册情况查询程序
2006/10/09 PHP
php中解析带中文字符的url函数分享
2015/01/20 PHP
微信企业转账之入口类分装php代码
2018/10/01 PHP
摘自百度的图片轮换效果代码
2007/11/19 Javascript
jquery 学习笔记一
2010/04/07 Javascript
jquery提示效果实例分析
2014/11/25 Javascript
jQuery实现点击后标记当前菜单位置(背景高亮菜单)效果
2015/08/22 Javascript
jQuery滚动加载图片实现原理
2015/12/14 Javascript
javascript实现网站加入收藏功能
2015/12/16 Javascript
详解JavaScript的AngularJS框架中的作用域与数据绑定
2016/03/04 Javascript
完美解决IE9浏览器出现的对象未定义问题
2016/09/29 Javascript
js return返回多个值,通过对象的属性访问方法
2017/02/21 Javascript
iview table render集成switch开关的实例
2018/03/14 Javascript
vue项目创建并引入饿了么elementUI组件的步骤
2019/04/11 Javascript
mock.js模拟数据实现前后端分离
2019/07/24 Javascript
vue数据响应式原理知识点总结
2020/02/16 Javascript
Python安装Imaging报错:The _imaging C module is not installed问题解决方法
2014/08/22 Python
Python三级菜单的实例
2017/09/13 Python
Python登录并获取CSDN博客所有文章列表代码实例
2017/12/28 Python
Flask实现跨域请求的处理方法
2018/09/27 Python
Python生成MD5值的两种方法实例分析
2019/04/26 Python
QML使用Python的函数过程解析
2019/09/26 Python
Python使用docx模块实现刷题功能代码
2020/02/13 Python
CSS3教程(9):设置RGB颜色
2009/04/02 HTML / CSS
html5超简单的localStorage实现记住密码的功能实现
2017/09/07 HTML / CSS
澳大利亚实惠时尚女装商店:Katies
2019/06/16 全球购物
迪奥美国官网:Dior美国
2019/12/07 全球购物
关于运动会的口号
2014/06/07 职场文书
中药学自荐信
2014/06/15 职场文书
幼儿园标语大全
2014/06/19 职场文书
四风问题自我剖析材料
2014/10/07 职场文书
公司开会通知
2015/04/20 职场文书
安全伴我行主题班会
2015/08/13 职场文书
小学数学教师研修感悟
2015/11/18 职场文书
MySQL学习之基础操作总结
2022/03/19 MySQL
python解析照片拍摄时间进行图片整理
2022/07/23 Python