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 相关文章推荐
一步一步制作jquery插件Tabs实现过程
Jul 06 Javascript
js选择器全面解析
Jun 27 Javascript
读Javascript高性能编程重点笔记
Dec 21 Javascript
vue 子组件向父组件传值方法
Feb 26 Javascript
vue2.0+vuex+localStorage代办事项应用实现详解
May 31 Javascript
对vue 键盘回车事件的实例讲解
Aug 25 Javascript
在小程序开发中使用npm的方法
Oct 17 Javascript
JS实现横向轮播图(中级版)
Jan 18 Javascript
JavaScript 严格模式(use strict)用法实例分析
Mar 04 Javascript
vue $router和$route的区别详解
Dec 02 Vue.js
原生JS实现京东查看商品点击放大
Dec 21 Javascript
JavaScript实现打字游戏
Feb 19 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
DC动漫人物排行
2020/03/03 欧美动漫
php中filter_input函数用法分析
2014/11/15 PHP
php使用指定编码导出mysql数据到csv文件的方法
2015/03/31 PHP
基于jQuery的输入框在光标位置插入内容, 并选中
2011/10/29 Javascript
jQuery中:password选择器用法实例
2015/01/03 Javascript
一次$.getJSON不执行的简单记录
2016/07/19 Javascript
Select下拉框模糊查询功能实现代码
2016/07/22 Javascript
js仿QQ邮箱收件人选择与搜索功能
2017/02/10 Javascript
jqueryUI tab标签页代码分享
2017/10/09 jQuery
vue2.x select2 指令封装详解
2017/10/12 Javascript
vue给input file绑定函数获取当前上传的对象完美实现方法
2017/12/15 Javascript
基于百度地图api清除指定覆盖物(Overlay)的方法
2018/01/26 Javascript
微信小程序button组件使用详解
2018/01/31 Javascript
解决vue attr取不到属性值的问题
2018/09/18 Javascript
layui 监听select选择 获取当前select的ID名称方法
2019/09/24 Javascript
vue弹出框组件封装实例代码
2019/10/31 Javascript
微信小程序实现倒计时功能
2020/11/19 Javascript
聊聊vue 中的v-on参数问题
2021/01/29 Vue.js
举例详解Python中yield生成器的用法
2015/08/05 Python
Python多线程爬虫实战_爬取糗事百科段子的实例
2017/12/15 Python
Python数据持久化shelve模块用法分析
2018/06/29 Python
对python数据切割归并算法的实例讲解
2018/12/12 Python
python实现批量文件重命名
2019/10/31 Python
python实现tail实时查看服务器日志示例
2019/12/24 Python
python 在sql语句中使用%s,%d,%f说明
2020/06/06 Python
基于python实现操作redis及消息队列
2020/08/27 Python
PyCharm 解决找不到新打开项目的窗口问题
2021/01/15 Python
python中scipy.stats产生随机数实例讲解
2021/02/19 Python
复古服装:RetroStage
2019/05/10 全球购物
养殖行业的创业计划书
2014/01/05 职场文书
美术专业个人自我评价
2014/01/18 职场文书
2014年党务公开实施方案
2014/02/27 职场文书
产品包装策划方案
2014/05/18 职场文书
副乡长群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
2014年大学班级工作总结
2014/11/14 职场文书
2014年幼儿园学期工作总结
2014/12/05 职场文书