萬盛學電腦網

 萬盛學電腦網 >> 腳本專題 >> javascript >> JQuery簡單實現錨點鏈接的平滑滾動

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

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

copyright © 萬盛學電腦網 all rights reserved