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表格插件ParamQuery简单使用方法示例
Dec 05 Javascript
document.compatMode的CSS1compat使用介绍
Apr 03 Javascript
jQuery级联操作绑定事件实例
Sep 02 Javascript
JQuery实现动态适时改变字体颜色的方法
Mar 10 Javascript
有关jquery与DOM节点操作方法和属性记录
Apr 15 Javascript
AngularJS 视图详解及示例代码
Aug 17 Javascript
jQuery如何封装输入框插件
Aug 19 Javascript
js中el表达式的使用和非空判断方法
Mar 28 Javascript
vue实现分环境打包步骤(给不同的环境配置相对应的打包命令)
Jun 04 Javascript
原生js基于canvas实现一个简单的前端截图工具代码实例
Sep 10 Javascript
Vant picker 多级联动操作
Nov 02 Javascript
js实现滚动条自动滚动
Dec 13 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微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
2015/12/21 PHP
解析PHP之提取多维数组指定列的方法
2017/01/03 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
Laravel相关的一些故障解决
2020/08/19 PHP
用jQuery技术实现Tab页界面之二
2009/09/21 Javascript
EasyUi tabs的高度与宽度根据IE窗口的变化自适应代码
2010/10/26 Javascript
Jquery attr(&quot;checked&quot;) 返回checked或undefined 获取选中失效
2013/10/10 Javascript
javascript中SetInterval与setTimeout的定时器用法
2015/08/24 Javascript
JS运动相关知识点小结(附弹性运动示例)
2016/01/08 Javascript
Javascript学习之谈谈JS的全局变量跟局部变量(推荐)
2016/08/28 Javascript
详解axios在node.js中的post使用
2017/04/27 Javascript
Angular使用cli生成自定义文件、组件的方法
2018/09/04 Javascript
React如何实现浏览器打印部分内容详析
2019/05/19 Javascript
js如何获取访问IP、地区、当前操作浏览器
2019/07/23 Javascript
Vue.js仿Select下拉框效果
2020/02/18 Javascript
vue.js实现双击放大预览功能
2020/06/23 Javascript
python类和函数中使用静态变量的方法
2015/05/09 Python
Python实现文件复制删除
2016/04/19 Python
用python打印1~20的整数实例讲解
2019/07/01 Python
Python pygame绘制文字制作滚动文字过程解析
2019/12/12 Python
通过实例了解Python str()和repr()的区别
2020/01/17 Python
使用python-Jenkins批量创建及修改jobs操作
2020/05/12 Python
css3 旋转按钮 使用CSS3创建一个旋转可变色按钮
2012/12/31 HTML / CSS
美国和加拿大计算机和电子产品购物网站:TigerDirect.com
2019/09/13 全球购物
Java编程面试题
2016/04/04 面试题
大学生职业生涯规划范文——找准自我,定位人生
2014/01/23 职场文书
2014年幼儿园学期工作总结
2014/12/05 职场文书
优秀教师申报材料
2014/12/16 职场文书
2015年销售工作总结范文
2015/03/30 职场文书
药品销售内勤岗位职责
2015/04/13 职场文书
理想国读书笔记
2015/06/25 职场文书
婚礼家长致辞
2015/07/27 职场文书
青少年法制教育心得体会
2016/01/14 职场文书
原生CSS实现文字无限轮播的通用方法
2021/03/30 HTML / CSS
Python源码解析之List
2021/05/21 Python
详细分析PHP7与PHP5区别
2021/06/26 PHP