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 学习笔记(十二) dom
Jan 21 Javascript
javascript 获取页面的高度及滚动条的位置的代码
May 06 Javascript
70+漂亮且极具亲和力的导航菜单设计国外网站推荐
Sep 20 Javascript
jquery事件preventDefault()方法用法实例
Jan 16 Javascript
jQuery网页版打砖块小游戏源码分享
Aug 20 Javascript
jQuery实现的省市县三级联动菜单效果完整实例
Aug 01 Javascript
JS+canvas实现的五子棋游戏【人机大战版】
Jul 19 Javascript
详解Angular系列之变化检测(Change Detection)
Feb 26 Javascript
layui-table表复选框勾选的所有行数据获取的例子
Sep 13 Javascript
javascript设计模式 ? 代理模式原理与用法实例分析
Apr 16 Javascript
js+css3实现炫酷时钟
Aug 18 Javascript
js实现简单的倒计时
Jan 28 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
php基础知识:控制结构
2006/12/13 PHP
WordPress开发中自定义菜单的相关PHP函数使用简介
2016/01/05 PHP
JQuery 选择器 xpath 语法应用
2010/05/13 Javascript
jQuery 通过事件委派一次绑定多种事件,以减少事件冗余
2010/06/30 Javascript
js弹出层之1:JQuery.Boxy (二)
2011/10/06 Javascript
jquery导航制件jquery鼠标经过变色效果示例
2013/12/05 Javascript
45个JavaScript编程注意事项、技巧大全
2015/02/11 Javascript
BootStrap iCheck插件全选与获取value值的解决方法
2016/08/24 Javascript
纯JS实现表单验证实例
2016/12/24 Javascript
jQuery插件FusionCharts绘制的2D双柱状图效果示例【附demo源码】
2017/05/13 jQuery
详解使用create-react-app添加css modules、sasss和antd
2018/07/31 Javascript
微信小程序实现笑脸评分功能
2018/11/03 Javascript
JS/jQuery实现简单的开关灯效果【案例】
2019/02/19 jQuery
vue选项卡切换登录方式小案例
2019/09/27 Javascript
完美解决通过IP地址访问VUE项目的问题
2020/07/18 Javascript
[04:53]DOTA2英雄基础教程 祈求者
2014/01/03 DOTA
浅析使用Python操作文件
2017/07/31 Python
python读取LMDB中图像的方法
2018/07/02 Python
Django models.py应用实现过程详解
2019/07/29 Python
python自动化测试之异常及日志操作实例分析
2019/11/09 Python
详解Anconda环境下载python包的教程(图形界面+命令行+pycharm安装)
2019/11/11 Python
关于tf.TFRecordReader()函数的用法解析
2020/02/17 Python
解决python对齐错误的方法
2020/07/16 Python
Shein英国:女性时尚网上商店
2019/04/10 全球购物
益模软件Java笔试题
2012/03/27 面试题
2014年大班元旦活动方案
2014/02/26 职场文书
8和9的加减法教学反思
2014/05/01 职场文书
机关党总支领导班子整改方案
2014/09/20 职场文书
普通党员对照检查材料
2014/09/24 职场文书
2014年个人委托书范本
2014/10/13 职场文书
先进人物事迹材料
2014/12/29 职场文书
暑假安全保证书
2015/02/28 职场文书
建党伟业的观后感
2015/06/01 职场文书
2016新党章学习心得体会
2016/01/15 职场文书
Nginx四层负载均衡的配置指南
2021/06/11 Servers
压缩Redis里的字符串大对象操作
2021/06/23 Redis