使用 svg.js 反转掩码
Invert mask with svg.js
我开始在一个项目中使用svg.js,因为我在玩面具,所以我无法反转它们。
我画了一个矩形和一个圆,用圆作为矩形的遮罩,只显示遮罩内的矩形部分。
var leftRect = draw.rect(300, 200);
var maskTest = draw.circle(100);
leftRect.attr({
x: 100,
y: 100,
fill: '#FF64F9'
});
maskTest.transform({
x: 150,
y: 150
});
leftRect.clipWith(maskTest);
现在我想要相反的东西,我想屏蔽以显示不在其中的任何内容。有什么方法可以用 svg.js 或 Snap.svg 做到这一点吗?
我找到了解决方案。
我正在创建一个包含一个黑色对象和一个白色对象的组。
以组为蒙版,隐藏黑色部分,显示白色部分
var maskTest = draw.circle(100).fill("#000");
var maskRect = draw.rect(200, 100).fill("#fff");
var group = draw.group();
group.add(maskRect);
group.add(maskTest);
maskTest.transform({
x: 100,
y: 150
});
maskRect.transform({
x: 150,
y: 150
});
leftRect.maskWith(group);
我开始在一个项目中使用svg.js,因为我在玩面具,所以我无法反转它们。
我画了一个矩形和一个圆,用圆作为矩形的遮罩,只显示遮罩内的矩形部分。
var leftRect = draw.rect(300, 200);
var maskTest = draw.circle(100);
leftRect.attr({
x: 100,
y: 100,
fill: '#FF64F9'
});
maskTest.transform({
x: 150,
y: 150
});
leftRect.clipWith(maskTest);
现在我想要相反的东西,我想屏蔽以显示不在其中的任何内容。有什么方法可以用 svg.js 或 Snap.svg 做到这一点吗?
我找到了解决方案。
我正在创建一个包含一个黑色对象和一个白色对象的组。
以组为蒙版,隐藏黑色部分,显示白色部分
var maskTest = draw.circle(100).fill("#000");
var maskRect = draw.rect(200, 100).fill("#fff");
var group = draw.group();
group.add(maskRect);
group.add(maskTest);
maskTest.transform({
x: 100,
y: 150
});
maskRect.transform({
x: 150,
y: 150
});
leftRect.maskWith(group);