Memanfaatkan kuasa API cat CSS untuk menyerlahkan gumpalan generatif! Tutorial ini meneroka penciptaan bentuk gumpalan rawak, menggunakan CSS Paint API, sebahagian daripada keluarga Houdini. Kami akan membina kerja gumpalan generatif, memanfaatkan JavaScript dan CSS Custom Ciri -ciri untuk kawalan dan respons.
Reka bentuk generatif memperkenalkan elemen peluang, menentukan peraturan dan membiarkan rawak membimbing hasilnya. Fikirkan ia seperti menggunakan setem dan dadu untuk membuat corak yang unik - kami akan menggunakan prinsip yang sama dengan kod. CSS Paint API menyediakan akses peringkat rendah ke CSS, yang membolehkan penciptaan imej programatik melalui kerja JavaScript. Kerja adalah kelas JavaScript dengan fungsi paint()
yang menghasilkan imej untuk sifat CSS.
Kami akan membina kerja gumpalan generatif, menerima sifat tersuai CSS sebagai input untuk mengawal penampilannya. Ini menawarkan pendekatan yang berprestasi dan bersih, mengelakkan kekacauan Dom. Worklet berjalan pada benang yang berasingan, menghalang kelembapan UI.
Berikut adalah pratonton keupayaan kerja:
Walaupun kaedah lain wujud untuk mencipta gumpalan (contohnya, pembuat blob, border-radius
), CSS Paint API menawarkan ekspresi dan prestasi yang lebih baik. Ia membolehkan kawalan yang tepat melalui CSS Custom Ciri-ciri ( --blob-seed
, --blob-num-points
, --blob-variance
, --blob-smoothness
, --blob-fill
) dan bukan pelarasan manual. Sifat multi-thread API memastikan prestasi yang cepat-cepat, walaupun dengan visual generatif yang kompleks.
Sokongan Pelayar & Polyfills: CSS Paint API menikmati sokongan yang semakin meningkat tetapi tidak tersedia secara universal. Kami akan menggunakan css-paint-polyfill
untuk memastikan keserasian yang luas dan meneroka mekanisme kejatuhan yang anggun menggunakan @supports
.
Persediaan Pembangunan: Persekitaran Pembangunan Mudah (menggunakan npm install
dan npm run start
pada repositori Starter-Kit Worklet-Starter-KIT yang diklonkan) disyorkan untuk pembangunan mudah dan tambah nilai langsung. Persediaan ini mengendalikan HTTPS atau berkhidmat localhost, menghalang isu CORS.
Pelaksanaan kerja:
Blob
ditakrifkan dan didaftarkan dengan registerPaint("blob", Blob)
.paint()
Fungsi: Fungsi ini menerima konteks lukisan 2D ( ctx
), geometri elemen ( geometry
), dan sifat tersuai ( properties
).inputProperties
mentakrifkan sifat tersuai yang diterima oleh kerja.propToString
, propToNumber
) menghuraikan nilai harta tersuai.mulberry32
PRNG memastikan rawak yang konsisten berdasarkan nilai benih ( --blob-seed
). Ini mengelakkan kelipan visual pada render semula.lerp
memudahkan pelarasan ini. Fungsi spline
(dari @georgedoescode/generative-utils
) menghasilkan lengkung licin.document.querySelector(".worklet-canvas").style.setProperty("--blob-seed", Math.random() * 10000);
Untuk pelbagai bentuk gumpalan pada setiap beban halaman.CSS["paintWorklet"]
dan Peraturan @supports
menyediakan CSS sahaja sandaran untuk penyemak imbas yang tidak disokong.Panduan komprehensif ini memberi kuasa kepada anda untuk membuat gumpalan generatif yang dinamik dan visual menggunakan API Cat CSS. Eksperimen dengan sifat tersuai untuk menyempurnakan penampilan gumpalan dan meneroka aplikasi yang pelbagai dalam reka bentuk UI.
Atas ialah kandungan terperinci Conjuring gumpalan generatif dengan CSS Paint API. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!