我有一个 React/Electron 应用程序,我正在尝试使用新的 CSS Houdinipaint()
功能(如本页所示)。在我的项目index.html
文件中,我添加了一个带有 paintWorkletaddModule()
函数的脚本标记,如下所示:
<script>
CSS.paintWorklet.addModule('../src/ResultDisplay/DefaultResultDisplay/testPaint.js');
</script>
然后在该testPaint.js
文件中,我基本上拥有该博客文章中显示的内容的副本:
registerPaint(
"testPaint",
class {
paint(ctx, geom) {
console.log("painting!!!");
const circleSize = 10;
const bodyWidth = geom.width;
const bodyHeight = geom.height;
const maxX = Math.floor(bodyWidth / circleSize);
const maxY = Math.floor(bodyHeight / circleSize);
for (let y = 0; y < maxY; y++) {
for (let x = 0; x < maxX; x++) {
ctx.fillStyle = "blue";
ctx.beginPath();
ctx.arc(
x * circleSize * 2 + circleSize,
y * circleSize * 2 + circleSize,
circleSize,
0,
2 * Math.PI,
true
);
ctx.closePath();
ctx.fill();
}
}
}
}
);
最后是我的css文件:
.container {
background-image: paint(testPaint);
display: flex;
margin: 4px;
border-radius: 12px;
height: 75px;
}
我应该指出我正在使用 CSS 模块,所以这个文件是defaultResultStyles.module.scss
; 不确定这是否会影响任何事情。当我在我的应用程序中调出本应具有这些样式的组件时,它没有样式,尽管检查它,它确实显示background-image: paint(testPaint). The console.log that I added to the
testPaint.js` 文件从未显示。
我已经尝试了文件路径的多种变体addModule
;我试过 just testPaint.js
,从./src
and开始src
,但似乎没有任何效果;这在 Electron/React 应用程序中可行吗?