【发布时间】:2017-07-17 11:11:16
【问题描述】:
我正在制作 SVG 蓝图,但遇到了一些问题。
我认为问题的出现是因为我必须将两个半透明的元素组合在一起,这样当它们重叠时,就好像它们是一个实体单元。
leftRoomFill.style.fill = '#fff';
leftRoomDoorFill.style.fill = '#fff';
leftRoomFill.style.opacity = '1';
leftRoomDoorFill.style.opacity = '1';
console.log(window.getComputedStyle(leftRoomFill).opacity);
console.log(window.getComputedStyle(leftRoomDoorFill).opacity);
问题在于,即使它正在向控制台记录元素的不透明度设置为 1,但它看起来好像元素的不透明度根本没有改变并且仍然是 0。
我尝试了以下方法,这进一步巩固了我的信念,即问题是不透明的问题。
rightRoomFill.style.zIndex = '1';
leftRoomFill.style.zIndex = '2';
leftRoomDoorFill.style.zIndex = '2';
有人知道为什么上面的代码似乎没有任何效果吗?
我要做的是使用门填充元素来裁剪门延伸到的房间的填充。
我知道我可以简单地取消填充元素的组合并使用没有不透明度的颜色,但我真的很想保持能够使用半透明填充的灵活性。
有什么想法吗?
【问题讨论】:
-
当 Chrome 修复他们的 transform-origin 错误时,你可能会再次遇到麻烦。
-
@RobertLongson ??
标签: javascript html xml svg opacity