前端遮罩层的应用

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

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

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

相关推荐
Tzarevich2 分钟前
CSS3星球大战:前端代码界的视觉导演艺术
前端·css
BBB努力学习程序设计3 分钟前
CSS复合选择器
前端·html
西洼工作室23 分钟前
Strapi快速入门:从安装到API开发
前端·后端
光影少年35 分钟前
前端线上出现白屏如何排查问题所在,利用第三方的工具都有哪些
前端·学习·web安全·前端框架
濑户川39 分钟前
Vue3 计算属性与监听器:computed、watch、watchEffect 用法解析
前端·javascript·vue.js
_Sem1 小时前
KMP实战:从单端到跨平台的完整迁移指南
android·前端·app
Carry3451 小时前
React 与 Vue 开发差异——CSS 样式
前端
前端九哥1 小时前
我删光了项目里的 try-catch,老板:6
前端·vue.js
2301_764441331 小时前
身份证校验工具
前端·python·1024程序员节
4Forsee1 小时前
【Android】View 事件分发机制与源码解析
android·java·前端