JQuery简单实现锚点链接的平滑滚动

 更新时间:2015年05月03日 10:33:13   投稿:hebedich  
在平时的项目中,我们经常需要一些特效链接,如果使效果进一步加强,我们可以使点击锚点链接平滑滚动到锚点,下面就来给大家讲解下如何使用jQuery来实现。

一般使用锚点来跳转到页面指定位置的时候,会生硬地立即跳转到指定位置,但是有些时候我们想要平滑地过渡到指定的位置,那么可以使用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">标签:&nbsp;<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后缀不带有锚点字样,使用的过程中基本不用修改以上代码即可实现。

以上所述就是本文的全部内容了,希望大家能够喜欢。

相关文章

  • Jquery中使用setInterval和setTimeout的方法

    Jquery中使用setInterval和setTimeout的方法

    有时候需要在jquery中调用setInterval和setTimeout,直接在ready中调用其他方法,会提示缺少对象的错误,解决方法如下
    2013-04-04
  • jquery select2的使用心得(推荐)

    jquery select2的使用心得(推荐)

    下面小编就为大家带来一篇jquery select2的使用心得(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • jquery.validate表单验证插件使用方法解析

    jquery.validate表单验证插件使用方法解析

    这篇文章主要为大家详细介绍了jquery.validate表单验证插件使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • jQuery中unbind()方法用法实例

    jQuery中unbind()方法用法实例

    这篇文章主要介绍了jQuery中unbind()方法用法,实例分析了unbind()方法的功能、定义及移除被选元素的事件处理程序的使用技巧,需要的朋友可以参考下
    2015-01-01
  • jQuery实现动画效果circle实例

    jQuery实现动画效果circle实例

    这篇文章主要介绍了jQuery实现动画效果circle的方法,涉及jquery鼠标事件及页面动画操作相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • Jquery实现自定义弹窗示例

    Jquery实现自定义弹窗示例

    使用javascript自带的提示对话框,不怎么美观,如果使用自定义的,那么在样式上就会有更多的控制权了,下面为大家分享下Jquery自定义的弹窗
    2014-03-03
  • jQuery实现网站添加高亮突出显示效果的方法

    jQuery实现网站添加高亮突出显示效果的方法

    这篇文章主要介绍了jQuery实现网站添加高亮突出显示效果的方法,涉及jQuery针对页面元素与样式的操作技巧,需要的朋友可以参考下
    2015-06-06
  • JQuery Easyui Tree的oncheck事件实现代码

    JQuery Easyui Tree的oncheck事件实现代码

    最近项目中有用到Easyui Tree,我想要checkbox的选中事件,但是api只提供了一个onClick事件,我百度、google之后,额,还是看js吧
    2010-05-05
  • 完美解决jQuery的hover事件在IE中不停闪动的问题

    完美解决jQuery的hover事件在IE中不停闪动的问题

    下面小编就为大家带来一篇完美解决jQuery的hover事件在IE中不停闪动的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • jQuery操作选中select下拉框的值代码实例

    jQuery操作选中select下拉框的值代码实例

    这篇文章主要介绍了jQuery操作选中select下拉框的值代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02

最新评论