scroll-behavior

Baseline 已廣泛支援

此特性已經十分成熟,可在許多裝置和瀏覽器版本上使用。自 2022 年 3 月起,它已在各瀏覽器中可用。

scroll-behavior CSS 屬性用於設定當滾動由導航或 CSSOM 滾動 API 觸發時,滾動框的行為。

試一試

scroll-behavior: auto;
scroll-behavior: smooth;
<section id="default-example">
  <div class="container">
    <p class="nav">
      Scroll to:
      <a href="#pageA">A</a>
      <a href="#pageB">B</a>
      <a href="#pageC">C</a>
    </p>
    <scroll-container id="example-element">
      <scroll-page id="pageA">A</scroll-page>
      <scroll-page id="pageB">B</scroll-page>
      <scroll-page id="pageC">C</scroll-page>
    </scroll-container>
  </div>
</section>
.container {
  flex-direction: column;
}

.nav a {
  color: #009e5f;
}

scroll-container {
  border: 1px solid black;
  display: block;
  height: 200px;
  overflow-y: scroll;
  width: 200px;
}

scroll-page {
  align-items: center;
  display: flex;
  font-size: 5em;
  height: 100%;
  justify-content: center;
}

請注意,此屬性不會影響其他滾動,例如使用者執行的滾動。當此屬性在根元素上指定時,它適用於視口。在 body 元素上指定的此屬性不會傳播到視口。

使用者代理可以忽略此屬性。

語法

css
/* Keyword values */
scroll-behavior: auto;
scroll-behavior: smooth;

/* Global values */
scroll-behavior: inherit;
scroll-behavior: initial;
scroll-behavior: revert;
scroll-behavior: revert-layer;
scroll-behavior: unset;

scroll-behavior 屬性指定為下面列出的關鍵字值之一。

auto

滾動框立即滾動。

平滑

滾動框以平滑的方式滾動,使用使用者代理定義的緩動函式和使用者代理定義的時間段。使用者代理應遵循平臺約定(如果有)。

正式定義

初始值auto
應用於滾動框
繼承性
計算值同指定值
動畫型別不可動畫化

正式語法

scroll-behavior = 
auto |
smooth

示例

設定平滑滾動行為

HTML

html
<nav>
  <a href="#page-1">1</a>
  <a href="#page-2">2</a>
  <a href="#page-3">3</a>
</nav>
<div class="scroll-container">
  <div class="scroll-page" id="page-1">1</div>
  <div class="scroll-page" id="page-2">2</div>
  <div class="scroll-page" id="page-3">3</div>
</div>

CSS

css
a {
  display: inline-block;
  width: 50px;
  text-decoration: none;
}
nav,
.scroll-container {
  display: block;
  margin: 0 auto;
  text-align: center;
}
nav {
  width: 339px;
  padding: 5px;
  border: 1px solid black;
}
.scroll-container {
  width: 350px;
  height: 200px;
  overflow-y: scroll;
  scroll-behavior: smooth;
}
.scroll-page {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  font-size: 5em;
}

結果

規範

規範
CSS 溢位模組第 3 級
# 平滑滾動

瀏覽器相容性