1. 開発者向けのウェブ技術
  2. Web API
  3. ScrollTimeline

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

View in English Always switch to English

ScrollTimeline

利用可能性は限定的

この機能はベースラインではありません。最も広く使用されているブラウザーの一部で動作しません。

Want more support for this feature? Tell us why.

Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

ScrollTimelineウェブアニメーション API のインターフェイスで、スクロール進行タイムラインを表します(詳しくは CSS スクロール駆動アニメーション を参照してください)。

ScrollTimeline インスタンスを Animation() コンストラクターまたは animate() メソッドに渡すと、アニメーションの進行を制御するタイムラインとして指定します。

AnimationTimeline ScrollTimeline

コンストラクター

ScrollTimeline()

新しい ScrollTimeline オブジェクトのインスタンスを作成します。

インスタンスプロパティ

このインターフェイスには、親である AnimationTimeline から継承したプロパティもあります。

source 読取専用

スクロール位置がタイムラインの進行、つまりアニメーションを駆動するスクロール可能要素(スクローラー)への参照を返します。

axis 読取専用

タイムラインの進行状況を表すスクロール軸を列挙した値を返します。

インスタンスメソッド

このインターフェイスには、親である AnimationTimeline から継承したメソッドもあります。

スクロール進行タイムラインのソースと軸の表示

この例では、ビュー進行タイムラインに沿って classbox の要素をアニメーションしています。文書のスクロールに合わせて画面全体でアニメーションします。source 要素とスクロール axis を右上の output 要素に出力します。

HTML

例の HTML は下記に示します。

html
<div class="content"></div>
<div class="box"></div>
<div class="output"></div>

CSS

例の CSS はこのようになっています。

css
.content {
 height: 2000px;
}
.box {
 width: 100px;
 height: 100px;
 border-radius: 10px;
 background-color: rebeccapurple;
 position: fixed;
 top: 20px;
 left: 0%;
}
.output {
 font-family: Arial, Helvetica, sans-serif;
 position: fixed;
 top: 5px;
 right: 5px;
}

JavaScript

JavaScript では、boxoutput<div> の参照を取得し、新しい ScrollTimeline を作成し、スクロールタイムラインを進行させる要素は文書 (<html>) 要素であり、スクロール軸は block 軸であることを指定します。そして、ウェブアニメーション API を使って box 要素をアニメーションします。最後に、ソース要素と軸を output 要素に表示します。

js
const box = document.querySelector(".box");
const output = document.querySelector(".output");
const timeline = new ScrollTimeline({
 source: document.documentElement,
 axis: "block",
});
box.animate(
 {
 rotate: ["0deg", "720deg"],
 left: ["0%", "100%"],
 },
 {
 timeline,
 },
);
output.textContent = `Timeline source element: ${timeline.source.nodeName}. Timeline scroll axis: ${timeline.axis}`;

結果

スクロールしてアニメーションするボックスをご覧ください。

仕様書

仕様書
Scroll-driven Animations
# scrolltimeline-interface

ブラウザーの互換性

関連情報

MDN の改良に協力

協力方法を知る

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

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