首先electron需要设置无边框和背景透明
src/main/index.js :
frame:false,
transparent:true,
页面示例
<template>
<div >
<div id="test">
hello
</div>
</div>
</template>
<script>
let win = require('electron').remote.getCurrentWindow()
export default {
name: 'landing-page',
components: { },
mounted(){
let el = document.getElementById('test')
el.addEventListener('mouseenter', () => {
console.log("enter")
win.setIgnoreMouseEvents(false)
})
el.addEventListener('mouseleave', () => {
win.setIgnoreMouseEvents(true, { forward: true })
})
}
}
</script>
<style >
#test{
width: 200px;
height: 200px;
background-color: aqua;
border-radius: 50%;
}
</style>
效果展示:
如图,设置了一个圆形的div(border:50%),其透明区域事件会传到后面的应用。比如鼠标放在箭头所处位置,后面的vs code回响应。

在 Electron-Vue 应用中,通过设置无边框和背景透明,可以实现指定区域的点击穿透效果。文章展示了如何在 `src/main/index.js` 中配置,并给出了页面示例,说明透明区域的事件会传递到应用后台,如图中箭头所示,当鼠标位于圆形div的透明部分时,VS Code等后台应用能够接收到鼠标事件。
1154

被折叠的 条评论
为什么被折叠?



