--- title: scroll-behavior slug: Web/CSS/scroll-behavior tags: - CSS - CSS Property - CSS プロパティ - CSSOM View - Reference - 'recipe:css-property' translation_of: Web/CSS/scroll-behavior ---

{{CSSRef}}

scroll-behaviorCSS のプロパティで、ナビゲーションや CSSOM のスクローリング API によってスクロールするボックスにスクロールが発生した際の、そのスクロールの振る舞いを設定します。

{{EmbedInteractiveExample("pages/css/scroll-behavior.html")}}

なお、ユーザーが実行したスクロールなど、その他のスクロールはこのプロパティの影響を受けません。このプロパティがルート要素に指定された場合は、代わりにビューポートに適用されます。このプロパティが body 要素に指定された場合は、ビューポートには適用されません

ユーザーエージェントは、このプロパティを無視することができます。

構文

/* キーワード値 */
scroll-behavior: auto;
scroll-behavior: smooth;

/* グローバル値 */
scroll-behavior: inherit;
scroll-behavior: initial;
scroll-behavior: unset;

scroll-behavior プロパティは、以下の一覧にあるキーワード値のうちの一つで指定します。

auto
スクロールするボックスは瞬時にスクロールします。
smooth
スクロールするボックスは、ユーザーエージェント定義のタイミング関数を使い、ユーザーエージェント定義の時間をかけて、円滑ににスクロールします。もし存在するなら、ユーザーエージェントはプラットフォームの慣例に従うべきです。

公式定義

{{cssinfo}}

形式文法

{{csssyntax}}

スクロールの動きをスムーズに設定

HTML

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

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 {
  display: block;
  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;
}

結果

{{ EmbedLiveSample("Setting_smooth_scroll_behavior", "100%", 250) }}

仕様書

仕様書 状態 備考
{{SpecName('CSSOM View', "#propdef-scroll-behavior", 'scroll-behavior')}} {{Spec2('CSSOM View')}} 初回定義

ブラウザーの互換性

{{Compat("css.properties.scroll-behavior")}}