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 - 如何引入js代码
Mar 09 Javascript
js实现幻灯片播放图片示例代码
Nov 07 Javascript
讨论html与javascript在浏览器中的加载顺序问题
Nov 27 Javascript
JS动态增删表格行的方法
Mar 03 Javascript
JavaScript接口的实现三种方式(推荐)
Jun 14 Javascript
jQuery实现定位滚动条位置
Aug 05 Javascript
详解Vue使用 vue-cli 搭建项目
Apr 20 Javascript
vue中用H5实现文件上传的方法实例代码
May 27 Javascript
基于jQuery实现图片推拉门动画效果的两种方法
Aug 26 jQuery
在vue中v-bind使用三目运算符绑定class的实例
Sep 29 Javascript
详解vue-cli3多页应用改造
Jun 04 Javascript
javascript canvas封装动态时钟
Sep 30 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+MYSQL的文章管理系统(二)
2006/10/09 PHP
一家之言的经验之谈php+mysql扎实个人基本功
2008/03/27 PHP
用php代码限制国内IP访问我们网站
2015/09/26 PHP
PHP使用file_get_content设置头信息的方法
2016/02/14 PHP
javascript 延迟加载技术(lazyload)简单实现
2011/01/17 Javascript
在服务端(Page.Write)调用自定义的JS方法详解
2013/08/09 Javascript
jquery 自定义容器下雨效果可将下雨图标改为其他
2014/04/23 Javascript
javascript中Date()函数在各浏览器中的显示效果
2015/06/18 Javascript
js原生跨域_用script标签的简单实现
2016/09/24 Javascript
Bootstrap select实现下拉框多选效果
2016/12/23 Javascript
浅谈js停止事件冒泡 阻止浏览器的默认行为(阻止超连接 #)
2017/02/08 Javascript
react-router browserHistory刷新页面404问题解决方法
2017/12/29 Javascript
JavaScript常用事件介绍
2019/01/21 Javascript
Vue如何使用混合Mixins和插件开发详解
2020/02/05 Javascript
vue请求数据的三种方式
2020/03/04 Javascript
React.js组件实现拖拽排序组件功能过程解析
2020/04/27 Javascript
JSONP 的原理、理解 与 实例分析
2020/05/16 Javascript
ES2020系列之空值合并运算符 '??'
2020/07/22 Javascript
[01:38]完美世界DOTA2联赛(PWL)宣传片:第一站
2020/10/26 DOTA
python matplotlib绘图,修改坐标轴刻度为文字的实例
2018/05/25 Python
Python 变量类型详解
2018/10/10 Python
python: 自动安装缺失库文件的方法
2018/10/22 Python
Pytorch中的variable, tensor与numpy相互转化的方法
2019/10/10 Python
Python3基本输入与输出操作实例分析
2020/02/14 Python
Pycharm中安装Pygal并使用Pygal模拟掷骰子(推荐)
2020/04/08 Python
django教程如何自学
2020/07/31 Python
HTML5 移动页面自适应手机屏幕四类方法总结
2017/08/17 HTML / CSS
企业申诉管理制度
2014/01/30 职场文书
股东协议书
2014/04/14 职场文书
活动总结报告格式
2014/05/09 职场文书
学校清明节活动总结
2014/07/04 职场文书
美术专业自荐信
2014/07/07 职场文书
ThinkPHP5和ThinkPHP6的区别
2021/03/31 PHP
用Python制作灯光秀短视频的思路详解
2021/04/13 Python
react 项目中引入图片的几种方式
2021/06/02 Javascript
详解使用内网穿透工具Ngrok代理本地服务
2022/03/31 Servers