CSSペイントAPIの力を活用して、生成塊を思い起こさせます!このチュートリアルでは、Houdiniファミリーの一部であるCSS Paint APIを使用して、カスタムランダムブロブ形状の作成について説明します。制御と応答性のために、JavaScriptとCSSカスタムプロパティを活用して、生成ブロブワークレットを構築します。
生成設計は、偶然の要素を導入し、ルールを定義し、ランダム性を結果を導くようにします。スタンプやサイコロを使用して一意のパターンを作成するようなものだと思います。コードで同様の原則を使用します。 CSS Paint APIは、CSSへの低レベルのアクセスを提供し、JavaScriptワークレットを介してプログラムの画像作成を可能にします。ワークレットは、CSSプロパティの画像を生成するpaint()
関数を備えたJavaScriptクラスです。
生成的なブロブワークレットを構築し、CSSカスタムプロパティをその外観を制御するための入力として受け入れます。これは、DOMの乱雑さを避けて、パフォーマンスとクリーンなアプローチを提供します。ワークレットは別のスレッドで実行され、UIの減速を防ぎます。
これが、ワークレットの機能のプレビューです。
Blobs(たとえば、Blobmaker、 border-radius
)を作成するための他の方法が存在しますが、CSS Paint APIは優れた表現力とパフォーマンスを提供します。 CSSカスタムプロパティ( --blob-seed
、 --blob-num-points
、 --blob-variance
、 --blob-smoothness
、 --blob-fill
)を介した正確な制御が可能になります。 APIのマルチスレッドの性質は、複雑な生成ビジュアルであっても、燃えるような速いパフォーマンスを保証します。
ブラウザサポートとポリフィル: CSSペイントAPIは、サポートの増大を楽しんでいますが、普遍的に利用できません。 css-paint-polyfill
を使用して、幅広い互換性を確保し、 @supports
を使用して優雅なフォールバックメカニズムを探索します。
開発セットアップ:簡単な開発環境( npm install
とnpm run start
)を簡単に開発し、ライブリロードすることをお勧めします。このセットアップは、HTTPSまたはLocalHostのサービングを処理し、CORSの問題を防ぎます。
ワークレットの実装:
Blob
クラスは定義され、 registerPaint("blob", Blob)
で登録されます。paint()
関数:この関数は、2D描画コンテキスト( ctx
)、要素ジオメトリ( geometry
)、およびカスタムプロパティ( properties
)を受信します。inputProperties
Getterは、ワークレットが受け入れるカスタムプロパティを定義します。propToString
、 propToNumber
)カスタムプロパティ値を解析します。mulberry32
PRNGは、種子値( --blob-seed
)に基づいて一貫したランダム性を保証します。これにより、再レンダーでの視覚的な点滅が回避されます。lerp
関数は、この調整を容易にします。 spline
関数( @georgedoescode/generative-utils
から)は滑らかな曲線を生成します。document.querySelector(".worklet-canvas").style.setProperty("--blob-seed", Math.random() * 10000);
各ページのロードでさまざまなブロブ形状の場合。CSS["paintWorklet"]
チェックを使用して条件付きで読み込まれ、 @supports
ルールは、サポートされていないブラウザーにCSSのみのフォールバックを提供します。この包括的なガイドは、CSSペイントAPIを使用して動的で視覚的に魅力的な生成ブロブを作成することができます。カスタムプロパティを試して、Blobの外観を微調整し、UI設計で多様なアプリケーションを調査します。
以上がCSSペイントAPIを使用した生成ブロブを誘発しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。