如何創建:平滑滾動

學習如何使用 CSS 創建平滑的滾動效果。

平滑滾動

Section 1
點擊我,平滑滾動至下方第 2 部分。

點擊鏈接即可看到“平滑”的滾動效果。

注意:移除 scroll-behavior 屬性可以取消平滑滾動。

平滑滾動

為 <html> 元素添加 scroll-behavior: smooth 可以啟用全頁面的平滑滾動:

注意:也可以將其添加到特定元素/滾動容器中。

實例

html {
  scroll-behavior: smooth;
}

親自試一試

瀏覽器支持

表中的數字注明了完全支持滾動行為屬性的首個瀏覽器版本。

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera
61.0 79.0 36.0 14.0 48.0

跨瀏覽器解決方案

對于不支持 scroll-behavior 屬性的瀏覽器,您可以使用 JavaScript 或 JavaScript 庫(如 jQuery)來創建適用于所有瀏覽器的解決方案:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
  // 為所有鏈接添加平滑滾動
  $("a").on('click', function(event) {
    // 在覆蓋默認行為之前,確保 this.hash 具有值
    if (this.hash !== "") {
      // 防止默認的錨點點擊行為
      event.preventDefault();
      // 存儲哈希值
      var hash = this.hash;
      // 使用 jQuery 的 animate() 方法添加平滑的頁面滾動
      // 可選數字(800)指定滾動到指定區域所需的毫秒數
      $('html, body').animate({
        scrollTop: $(hash).offset().top
      }, 800, function(){
        // 完成滾動后,將井號 (#) 添加到 URL(默認點擊行為)
        window.location.hash = hash;
      });
    } // End if
  });
});
</script>

親自試一試

相關頁面

參考手冊:CSS scroll-behavior 屬性