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(); });