pseudoクラスの導入以来、CSSはJavaScriptの開発者によって作成されたパターンを標準化し、それらをCSS標準に「含めた」。この観点から、JavaScriptは「回避策」のようなものであり、CSSは公式のアプローチです。 :hover
したがって、CSSを使用してスクリプトのような動作を実装すると、「awkish」のように感じられなくなり、新しい
JavaScriptの例をCSS scroll-timeline
に移行します
パラメーターなしでscroll-timeline
関数を使用すると、「匿名のスクロール進行状況タイムライン」が設定されます。つまり、ライティングモードが英語の場合、ブラウザは垂直にスクロールできる最近の祖先要素に基づいてアニメーション化します。残念ながら、両方ではなく、特定の要素のx軸またはy軸のスクロールに基づいて、アニメーション化することを選択するだけで非常に便利です。関数として、パラメーターをに渡すことができます。これにより、スクロールがアニメーションを実行する方法をより適切に制御できます。
body, .progress, .cube { animation-timeline: scroll(); }
scroll()
属性が優れています。コンテナ要素に適用するということは、同じ割り当てられたスコープを持つスクロール可能な要素に基づいて、選択した祖先要素の属性をアニメーション化できることを意味します。これにより、CSS HoudiniはCSSでアニメーションに優しい継承可能なプロパティを登録できるため、ページ上の複数のスクロール可能な領域に基づいて同じ要素のアニメーションを組み合わせることができます。これにより、以下の私の実験など、興味深い教育デザインの可能性への扉が開かれます。 scroll()
ライトグリーンカードの水平な物語をスクロールすると、3D NESコンソールが水平方向に回転し、ダークグリーンカードの垂直な物語をスクロールすると、NESコンソールが垂直に回転します。私の以前の投稿で、私は私の過去のCSSトリックは常にCSSに隠れて限られた可能性を示す可能性に要約されていると述べました。私がこのロールベースの実験に興味があるのは、組み合わせの垂直回転と水平の回転の爆発の組み合わせです。アニメーション化されたタイムラインは、過去に不可能だった純粋なCSSの対話性を提供します。
実装の詳細は、timeline-scope
の使用およびカスタムプロパティほど重要ではありません。 2つのカスタム角度プロパティを登録します:
body, .progress, .cube { animation-timeline: scroll(); }
ジュリアンガーナーの驚くべきCSS 3Dモデリングアプリケーションの例から、3Dモデルを「借りる」ことができます。次のように、新しい変数に基づいて3D回転を行うように.scene
クラスを更新します。
@property --my-y-angle { syntax: "<angle>"; inherits: true; initial-value: 0deg; } @property --my-x-angle { syntax: "<angle>"; inherits: true; initial-value: -35deg; }</angle></angle>
要素を提供します。 body
scroll-scope
.scene { transform: rotateY(var(--my-y-angle)) rotateX(var(--my-x-angle)); }
次に、2つのスクロール可能なカードとアニメーションをトリガーする軸の指定されたタイムラインを定義します。
そしてアニメーションをシーンに追加します:
body { scroll-scope: --myScroller,--myScroller2; }
3Dモデルはドキュメント本体のxおよびy角を継承するため、スクロールカードは垂直角度と水平角の変化の組み合わせでモデルを回転させるようになりました。
.card:first-child { scroll-timeline-axis: x; scroll-timeline-name: --myScroller; } .card:nth-child(2) { scroll-timeline-axis: y; scroll-timeline-name: --myScroller2; }
Scrollbarを超えたユーザーコントロールアニメーション
Julian Garnerの3Dモデルを要求している間、範囲入力を使用して彼のX-Wingモデルを制御できるかどうかを見てみましょう。
CSSを使用するだけでこれを行うことができ、任意の数のプロパティでそれを行うことができます。私にとっては、それで十分ではありません。アニメーションのタイムラインを操作できる他の入力コントロールを見たいです。テキストフィールドがアニメーションを入力するときにアニメーションを押している、またはボタンがアニメーションを再生または逆にできると想像してください。後者は、 この新興CSS機能の可能性に気づいたのは私だけではありません。誰かがこの巧妙なDOOMクローンを実装して、scroll-timeline
とチェックボックスのトリックを組み合わせて実装しました。私の問題は、それでもまだ十分ではないということです。 Chromeには、ScrollbarsとRange Inputsをゲームコントロールとして使用してAvatar Builderを実装するのに十分なリソースがあります。私は、scroll-timeline
機能が登場する前に時代に前例のない、予測不可能で複雑な体験を試してみてうれしいです。結局のところ、エイリアンにビデオゲームの定義を説明しなければならない場合、それが単なるインタラクティブなアニメーションだとは言いませんか?
以上がCSSスクロールタイムラインを使用して、無制限の寸法をスライドさせますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。