1. 開発者向けのウェブ技術
  2. CSS
  3. リファレンス
  4. プロパティ
  5. scroll-behavior

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

scroll-behavior

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2022年3月以降、すべてのブラウザーで利用可能です。

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

試してみましょう

scroll-behavior: auto;
scroll-behavior: smooth;
<section id="default-example">
 <div class="container">
 <p class="nav">
 スクロール先:
 <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
/* キーワード値 */
scroll-behavior: auto;
scroll-behavior: smooth;
/* グローバル値 */
scroll-behavior: inherit;
scroll-behavior: initial;
scroll-behavior: revert;
scroll-behavior: revert-layer;
scroll-behavior: unset;

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

auto

スクロールするボックスは瞬時にスクロールします。

smooth

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

公式定義

初期値 auto
適用対象スクロールするボックス
継承 なし
計算値 指定通り
アニメーションの種類 アニメーション不可

形式文法

scroll-behavior = 
auto |
smooth
この構文は CSS Overflow Module Level 3 による最新の標準を反映しています。すべてのブラウザーがすべての部分を実装しているわけではありません。サポート情報についてはブラウザーの互換性を参照してください。

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

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 Overflow Module Level 3
# smooth-scrolling

ブラウザーの互換性

MDN の改良に協力

協力方法を知る

このページは MDN の貢献者によって に最終更新されました。

AltStyle によって変換されたページ (->オリジナル) /