最近微信小程序需要开发新手引导功能,发现需要在遮罩层中间抠一个洞出来,但是一直不知道该怎么去做,其实很简单,先展示源码:
<template>
<div class="num01">
hello
<div class="mask">
sadasdasdassssssssssssssssssssssss
<div class="hole"></div>
<div class="test01"></div>
</div>
</div>
</template>
<style scoped>
.num01{
background: linear-gradient(to right, #ff0000, #00ff00);
width: 100vw;
height: 100vh;
display: flex;
}
.mask{
background: rgba(128,128,128,0.5);
width: 50%;
height: 50%;
top: 10%;
left: 20%;
mix-blend-mode: multiply;
position: fixed;
}
.hole{
width: 30%;
height: 30%;
top:15%;
left:50%;
position: relative;
background: #fff;
}
.test01{
width: 50%;
height: 50%;
top: 10%;
left: 10%;
position: relative;
background: #000000;
}
</style>
ok,然后说一下原理
首先是设置一个盒子,在盒子上套一层遮罩,然后使用在遮罩上面抠出一个洞来
难点是如何扣除一个洞呢?需要在遮罩层加一个css样式:mix-blend-mode:multiply,功能是开启混合模式,会将该样式和子样式的颜色发生混合
然后将洞的颜色调成白色,这样就能显示出类似于一个洞的效果