实现小程序两个元素重叠部分透明的效果
不使用canvas
貌似css的 mix-blend-mode属性可以做出这种效果
使用光的颜色重叠特性,比如光的三原色重叠后就是白色。使用rgba颜色值设置背景色,但css似乎是使用的颜料颜色特性,只会越描越黑。
可以用PS画一个png格式的图片,放在html里可以设置图片整体宽高,不能改变形状。假如你的实际需求,是让俩圆动态移动,交叉部分是可变的,那就不行。否则还是能满足的。
可以强行实现。总div设置背景图。内部俩div(a、b)设置背景透明度,圆角50%,分别加一个子div和相邻div重叠,即a的子div和b本身大小相同,位置相同。ab的子div透明度100%,也有一样的背景图,根据其位置计算其背景定位。溢出隐藏。
用SVG呢?
<svg style="width: 100%;height: 100%;">
<clipPath id="cp">
<use xlink:href="#l" />
</clipPath>
<g style="fill: white;stroke: white;stroke-width:2;fill-opacity: 0.5;">
<circle id="l" cx="50" cy="50" r="25" />
<circle id="r" cx="50" cy="80" r="25" />
</g>
<use xlink:href="#r" clip-path="url(#cp)" style="fill:#000000;" />
</svg>