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

來源:互聯網
上載者:User

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

   在平時的項目中,我們經常需要一些特效連結,如果使效果進一步加強,我們可以使點擊錨點連結平滑滾動到錨點,下面就來給大家講解下如何使用jQuery來實現。

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

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

  ?

1

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

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

標籤即可。

  ?

1

2

3

4

5

6

7

8

9

<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來實現平滑過渡的效果了:

  ?

1

2

3

4

5

6

$('#turnToContent').click(function () {

$('html, body').animate({

scrollTop: $($.attr(this, 'href')).offset().top

}, 500);

return false;

});

  搞定了!

  下面我們來繼續改進一下,

  ?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

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

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.