Emi*_*ser 12 css blur transparent node.js electron
是否可以BrowserWindow在电子中使, 透明且模糊?因为它模糊了所有背景内容,包括应用程序和壁纸。
如果可能,我将如何实现这一目标?
这是我尝试过的一些代码。
index.js:
let win = new BrowserWindow({
fullscreen: true,
fullscreenable: false,
frame: false,
skipTaskbar: true,
resizable: false,
movable: false,
show: false,
alwaysOnTop: true,
transparent: true
})
Run Code Online (Sandbox Code Playgroud)
style.css:
html, body {
width: 100vw;
height: 100vh;
margin: 0;
padding: 0;
background-color: rgba(0, 0, 0, 0.5);
color: rgb(255, 255, 255);
backdrop-filter: blur(4px);
}
Run Code Online (Sandbox Code Playgroud)
html 只是一个带有 h1 标签的正文,其中包含文本。
虽然这只会在窗口中创建黑色背景。
我读了一些关于这个的东西:
webPreferences: {
experimentalFeatures: true
}
Run Code Online (Sandbox Code Playgroud)
但无法让它工作。
我有康普顿运行。也许它与此有关。还是一般的合成引擎?
提前致谢!
事实上,只要一点点魔法,这是可能的。我不知道为什么没有人指出这一点,但有一个名为electro-ryls-window 的小实用程序,它可以让你做到这一点。您可以在acrylic(“磨砂”)和blur效果之间进行选择,以及更改窗口的颜色和不透明度。
在底层,它使用node-gyp和低级 C++ 代码来按照您喜欢的方式呈现页面。用 JavaScript 很容易实现。
index.js
import { BrowserWindow } from 'electron-acrylic-window'; // ESM
// const { BrowserWindow } = require('electron-acrylic-window'); // CommonJS
const win = new BrowserWindow({
...,
frame: false,
vibrancy: {
theme: 'light', // (default) or 'dark' or '#rrggbbaa'
effect: 'acrylic', // (default) or 'blur'
disableOnBlur: true, // (default)
}
});
// alternatively use these to
// dynamically change vibrancy
win.setVibrancy([options])
// or
setVibrancy(win, [options])
Run Code Online (Sandbox Code Playgroud)
style.css
body {
background-color: transparent;
}
.foo {
background-color: black;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5227 次 |
| 最近记录: |