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 相关文章推荐
zTree插件之单选下拉菜单实例代码
Nov 07 Javascript
node.js+Ajax实现获取HTTP服务器返回数据
Nov 26 Javascript
js获得当前系统日期时间的方法
May 06 Javascript
jQuery动态效果显示人物结构关系图的方法
May 07 Javascript
深入理解JavaScript编程中的同步与异步机制
Jun 24 Javascript
JS实现网页标题随机显示名人名言的方法
Nov 03 Javascript
js+css实现select的美化效果
Mar 24 Javascript
javascript insertAfter()定义与用法示例
Jul 25 Javascript
jquery animate动画持续运动的实例
Nov 29 jQuery
webpack external模块的具体使用
Mar 10 Javascript
JavaScript引用类型Date常见用法实例分析
Aug 08 Javascript
微信小程序把百度地图坐标转换成腾讯地图坐标过程详解
Jul 10 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/25 PHP
如何修改和添加Apache的默认站点目录
2013/07/05 PHP
Win下如何安装PHP的APC拓展
2013/08/07 PHP
PHP curl 获取响应的状态码的方法
2014/01/13 PHP
php生成与读取excel文件
2016/10/14 PHP
Laravel中的Auth模块详解
2017/08/17 PHP
详解php语言最牛掰的Laravel框架
2017/11/20 PHP
php workerman定时任务的实现代码
2018/12/23 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
2020/03/26 PHP
静态图片的十一种滤镜效果--不支持Ie7及非IE浏览器。
2007/03/06 Javascript
利用javascript实现web页面中指定区域打印
2013/10/30 Javascript
兼容IE、firefox以及chrome的js获取时间(getFullYear)
2014/07/04 Javascript
JS实现的颜色实时渐变效果完整实例
2016/03/25 Javascript
详谈JS中实现种子随机数及作用
2016/07/19 Javascript
javascript实现获取指定精度的上传文件的大小简单实例
2016/10/25 Javascript
BootstrapValidator超详细教程(推荐)
2016/12/07 Javascript
seajs中模块依赖的加载处理实例分析
2017/10/10 Javascript
jQuery实现的中英文切换功能示例
2019/01/11 jQuery
python实现登陆知乎获得个人收藏并保存为word文件
2015/03/16 Python
在Python中处理字符串之isdigit()方法的使用
2015/05/18 Python
对于Python装饰器使用的一些建议
2015/06/03 Python
简单讲解Python中的数字类型及基本的数学计算
2016/03/11 Python
python3.5 + PyQt5 +Eric6 实现的一个计算器代码
2017/03/11 Python
python 美化输出信息的实例
2018/10/15 Python
python的scipy实现插值的示例代码
2019/11/12 Python
基于python-pptx库中文文档及使用详解
2020/02/14 Python
Python semaphore evevt生产者消费者模型原理解析
2020/03/18 Python
详解python安装matplotlib库三种失败情况
2020/07/28 Python
ALEX AND ANI:手镯,项链,耳环和更多
2017/04/20 全球购物
美国豪华的多品牌精品店:The Webster
2019/07/31 全球购物
这段代码难道不该打印出56吗
2013/02/27 面试题
机电工程专业应届生求职信
2013/10/03 职场文书
公司财务会计主管应聘求职信
2014/09/26 职场文书
入党积极分子十八届四中全会思想汇报
2014/10/23 职场文书
2015年党员自评材料
2014/12/17 职场文书
PyTorch device与cuda.device用法
2022/04/03 Python