Scroll Behavior プロパティ

最終更新:2026-09-13

scroll-behavior Scroll Behavior プロパティ

scroll-behavior プロパティは、スクロールが目的地へ瞬時にジャンプするか、滑らかにアニメーションするかを制御します。smooth にすると、アンカーリンクのクリックや JavaScript からのスクロールが、ジャンプするのではなく目的地へ滑らかに移動し、ユーザー体験を大きく向上させます。

カテゴリ
初期値auto
継承いいえ
適用対象
アニメーションタイプ
CSS バージョンCSS3
状態標準

📝 構文

scroll-behavior: auto | smooth;

⚙️ 値

タイプ説明
auto | smoothキーワードスクロールの挙動

▶ 例

以下のコードを編集して、プレイグラウンドでライブ結果を確認してください:

🌐 ブラウザーサポート

ブラウザー ChromeChrome EdgeEdge FirefoxFirefox SafariSafari OperaOpera
scroll-behavior v57 v12 v52 v10.1 v44
すべての主要ブラウザーでサポート
ヒント: html 要素やルートのスクロールコンテナに scroll-behavior: smooth を設定すると、グローバルに適用されます。
注意: スムーズスクロールはユーザーの prefers-reduced-motion アクセシビリティ設定を尊重します。ユーザーが「アニメーションを減らす」を有効にしている場合、ブラウザは smooth の値を自動的に無視します。

❓ よくある質問

Qscroll-behavior: smooth は JavaScript の window.scrollTo() に影響しますか?
Aはい。スクロールコンテナに scroll-behavior: smooth が設定されていれば、window.scrollTo、scrollBy、scrollIntoView はデフォルトで滑らかにスクロールします。JavaScript で { behavior: 'smooth' } を明示的に渡して上書きすることもできます。アンカーのジャンプは最も近いスクロールコンテナで発生することに注意してください。
Qブラウザで CSS のスムーズスクロールが機能しないのはなぜですか?
A順に調査します。プロパティが実際にスクロールする要素に設定されているか(ページレベルのスクロールは html、内部スクロールは overflow 要素)を確認してください。システムの prefers-reduced-motion: reduce によって上書きされていないか(アニメーション削減の設定は smooth を強制的に無視します)を確認してください。また、JavaScript が behavior: 'auto' でデフォルトを上書きしていないかを確認してください。
Qscroll-behavior: smooth プロパティはページのパフォーマンスに影響しますか?
Aスムーズスクロールはブラウザにネイティブに実装されており、スクロールはメインスレッドをブロックせず合成スレッドで実行されるため、パフォーマンスコストはわずかです。ただし、スクロール中に重い再レイアウトや再描画(遅延読み込みされた画像、スタイルを変更する scroll リスナーなど)が発生すると、依然としてカクつく可能性があります。scroll イベントでの高負荷な処理を避けるか、passive リスナーを使って最適化してください。
Qscroll-behavior と JavaScript によるスムーズスクロールの違いは何ですか?
Ascroll-behavior: smooth はブラウザにネイティブに駆動され、JavaScript 不要でパフォーマンスに優れ、prefers-reduced-motion 設定を自動的に尊重します。JavaScript(requestAnimationFrame での手動スクロール)は制御性に優れ、カスタムなイージングや特定のオフセットまでのスクロールが可能ですが、コード量は増えます。CSS で済む場合は CSS を優先してください。

📚 関連チュートリアル

Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%