BrowserWindow - win.setOpacity(opacity)
概述
设置窗口透明度(0-1)。
基本信息
| 属性 |
值 |
| 模块 |
BrowserWindow |
| 类型 |
Method |
| 鸿蒙支持 |
支持 |
OHOS 依赖与基本表现
| 属性 |
值 |
| 系统权限依赖 |
无需申请 |
| 主窗 |
支持 |
| 子窗 |
支持 |
| 悬浮窗 |
支持 |
| 添加JIT权限 |
支持 |
| 坚盾模式 |
支持 |
差异说明
| 属性 |
值 |
| 是否存在差异 |
存在差异 |
| 差异说明 |
在鸿蒙下透明度存在最低阈值,不支持设置到0 |
Demo
const { app, BrowserWindow, ipcMain } = require('electron');
const path = require('path');
let mainWindow = null;
let childWindow = null;
function sendLog(type, message) {
if (mainWindow && !mainWindow.isDestroyed()) {
mainWindow.webContents.send('log-message', { type, message, time: new Date().toLocaleTimeString() });
}
}
app.whenReady().then(() => {
mainWindow = new BrowserWindow({
width: 1400, height: 900,
webPreferences: { preload: path.join(__dirname, '..', 'preload.js'), contextIsolation: true, nodeIntegration: false },
title: 'Test setOpacity and restore',
});
mainWindow.loadFile(path.join(__dirname, '..', 'index.html'));
ipcMain.handle('method:setOpacity-and-restore', async () => {
const orig = mainWindow.getOpacity();
mainWindow.setOpacity(0.5);
const after = mainWindow.getOpacity();
await new Promise(r => setTimeout(r, 1500));
mainWindow.setOpacity(orig);
return { original: orig, setTo: after, restoredTo: mainWindow.getOpacity() };
});
});
app.on('window-all-closed', () => { app.quit(); });