前端遮罩层的应用

最近微信小程序需要开发新手引导功能,发现需要在遮罩层中间抠一个洞出来,但是一直不知道该怎么去做,其实很简单,先展示源码:

复制代码
<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,功能是开启混合模式,会将该样式和子样式的颜色发生混合

然后将洞的颜色调成白色,这样就能显示出类似于一个洞的效果

相关推荐
懂懂tty4 小时前
React状态更新流程
前端·react.js
小码哥_常5 小时前
告别繁琐!手把手教你封装超实用Android原生Adapter基类
前端
skywalk81635 小时前
pytest测试的时候这是什么意思?Migrating <class ‘kotti.resources.File‘>
前端·python
一只蝉nahc5 小时前
vue使用iframe内嵌unity模型,并且向模型传递信息,接受信息
前端·vue.js·unity
子兮曰6 小时前
Bun v1.3.12 深度解析:新特性、性能优化与实战指南
前端·typescript·bun
2401_885885046 小时前
易语言彩信接口怎么调用?E语言Post实现多媒体数据批量下发
前端
a1117767 小时前
Three.js 的前端 WebGL 页面合集(日本 开源项目)
前端·javascript·webgl
Kk.08027 小时前
项目《基于Linux下的mybash命令解释器》(一)
前端·javascript·算法
小李子呢02118 小时前
前端八股---闭包和作用域链
前端
IT_陈寒8 小时前
Redis的内存溢出坑把我整懵了,分享这个血泪教训
前端·人工智能·后端