首頁  >  文章  >  web前端  >  JQuery簡單實現錨點連結的平滑滾動_jquery

JQuery簡單實現錨點連結的平滑滾動_jquery

WBOY
WBOY原創
2016-05-16 16:01:371731瀏覽

一般使用錨點來跳到頁面指定位置的時候,會生硬地立即跳到指定位置,但是有些時候我們想要平滑地過渡到指定的位置,那麼可以使用JQuery簡單的實現這個效果:

例如,這裡我們將透過點擊標籤跳到 id為content的指定位置那裡。

<a id="turnToContent" href="#content"></a>

那呢,就在我們想要的位置設定id為content的內容區塊,這裡用一個div模擬一篇不像文章的文章。最好將此div放在靠後的位置,這樣效果就很明顯一點,如果只是測試一下這個效果,可以用簡單粗暴的方法,在其前面放很多個

標籤即可。

<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後綴不帶有錨點字樣,使用的過程中基本上不用修改以上程式碼即可實現。

以上所述就是本文的全部內容了,希望大家能夠喜歡。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn