与CSS油漆API结合生成斑点
利用CSS油漆API的力量来召唤生成斑点!本教程探讨了使用Houdini家族的一部分CSS Paint API的定制,随机斑点形状的创建。我们将建立一个生成的斑点工作点,利用JavaScript和CSS自定义属性来控制和响应能力。
生成设计引入了机会元素,定义规则并让随机性指导结果。将其视为使用邮票和骰子来创建独特的模式 - 我们将使用代码使用类似的原理。 CSS Paint API提供了对CSS的低水平访问权限,从而可以通过JavaScript Worklets创建编程图像。 Worklet是一个带有paint()
函数的JavaScript类,可为CSS属性生成图像。
我们将构建一个生成的Blob Worklet,接受CSS自定义属性作为控制其外观的输入。这提供了一种表演剂,干净的方法,避免了杂物。该工作点在单独的线程上运行,以防止UI放缓。
这是工作人员功能的预览:
- 作为背景图像: Blob Worklet动态生成背景图像,无缝地调整元素调整大小和自定义属性更改。
- 生成图像面具:工作点充当面具,为设计添加了独特的有机曲线。不断变化的性质使UI保持新鲜。
尽管存在创建斑点的其他方法(例如Blobmaker, border-radius
),但CSS Paint API提供了出色的表现力和性能。它允许通过CSS自定义属性( --blob-seed
, --blob-num-points
, --blob-variance
, --blob-smoothness
, --blob-fill
)进行精确控制,而不是手动调整。 API的多线程自然可以确保即使具有复杂的生成视觉效果,也可以确保闪耀的性能。
浏览器支持和多填充: CSS Paint API享有越来越多的支持,但并不普遍。我们将使用css-paint-polyfill
来确保使用@supports
探索优雅的后备机制。
开发设置:一个简单的开发环境(使用npm install
和npm run start
在克隆的工作点启动式存储库上),以便于易于开发和实时重新加载。此设置处理HTTPS或Local主机服务,以防止CORS问题。
工作点实施:
-
初始化:
Blob
类定义并在registerPaint("blob", Blob)
中注册。 -
paint()
函数:此功能接收2D图形上下文(ctx
),元素几何(geometry
)和自定义属性(properties
)。 -
输入属性:
inputProperties
Getter定义了工作场所接受的自定义属性。 -
属性解析:辅助功能(
propToString
,propToNumber
)分析自定义属性值。 -
伪数数生成:
mulberry32
PRNG确保基于种子值(--blob-seed
)的一致随机性。这避免了视觉闪烁的重新租赁。 -
斑点的生成:斑点的形状是通过绘制圆圈周围的点,随机调整其向中心的位置而创建的,并通过它们绘制catmull-rom样条。
lerp
功能有助于此调整。spline
函数(来自@georgedoescode/generative-utils
)生成平滑曲线。 -
随机种子:种子值使用
document.querySelector(".worklet-canvas").style.setProperty("--blob-seed", Math.random() * 10000);
对于每个页面上的变化斑点形状。 - Polyfill&Hallback:使用
CSS["paintWorklet"]
检查和@supports
规则为不支持的浏览器提供@supports规则提供@supports规则,为多文件加载。
该全面的指南使您使用CSS Paint API创建动态和视觉上吸引人的生成斑点。尝试自定义属性,以微调斑点的外观并探索其在UI设计中的不同应用。
以上是与CSS油漆API结合生成斑点的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

这是我们在形式可访问性上进行的小型系列中的第三篇文章。如果您错过了第二篇文章,请查看“以:focus-visible的管理用户焦点”。在

CSS盒子阴影和轮廓属性获得了主题。让我们查看一些在真实主题中起作用的示例,以及我们必须将这些样式应用于WordPress块和元素的选项。

本教程演示了使用智能表单框架创建外观专业的JavaScript表单(注意:不再可用)。 尽管框架本身不可用,但原理和技术仍然与其他形式的建筑商相关。

本文探讨了Envato Market上可用的PHP表单构建器脚本,比较了其功能,灵活性和设计。 在研究特定选项之前,让我们了解PHP形式构建器是什么以及为什么要使用一个。 PHP形式

Svelte Transition API提供了一种使组件输入或离开文档(包括自定义Svelte Transitions)时动画组件的方法。
