electron启动加载动画
时间: 2025-09-15 09:56:34 AIGC 浏览: 2
在 Electron 中实现启动加载动画可以按照以下步骤进行:
### 创建加载动画窗口
在主进程中创建一个专门用于显示加载动画的窗口。这个窗口应该在 Electron 应用启动时立即显示,并且在主应用窗口准备好后关闭。以下是一个简单的示例代码:
```javascript
const { app, BrowserWindow } = require('electron');
let loadingWindow;
function createLoadingWindow() {
loadingWindow = new BrowserWindow({
width: 300,
height: 200,
frame: false,
transparent: true,
resizable: false,
webPreferences: {
nodeIntegration: true
}
});
loadingWindow.loadFile('loading.html');
loadingWindow.on('closed', () => {
loadingWindow = null;
});
}
app.whenReady().then(() => {
createLoadingWindow();
// 创建主窗口的代码
const mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true
}
});
mainWindow.loadFile('index.html');
mainWindow.webContents.on('did-finish-load', () => {
if (loadingWindow) {
loadingWindow.close();
}
});
});
```
上述代码中,`createLoadingWindow` 函数用于创建加载动画窗口,加载 `loading.html` 文件。当主窗口加载完成后,关闭加载动画窗口。
### 创建加载动画页面
创建一个 `loading.html` 文件,用于显示加载动画。可以使用 HTML、CSS 和 JavaScript 来实现动画效果。以下是一个简单的示例:
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Loading...</title>
<style>
body {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
background-color: transparent;
}
.loader {
border: 16px solid #f3f3f3;
border-top: 16px solid #3498db;
border-radius: 50%;
width: 120px;
height: 120px;
animation: spin 2s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
</style>
</head>
<body>
<div class="loader"></div>
</body>
</html>
```
上述代码使用 CSS 动画实现了一个简单的旋转加载动画。
### 关闭加载动画窗口
在主窗口加载完成后,需要关闭加载动画窗口。可以在主窗口的 `did-finish-load` 事件中关闭加载动画窗口,如上述主进程代码所示。
### 在主项目中关闭加载窗口
在主项目的 `App.vue` 中,可以使用 `ipcRenderer` 向主进程发送关闭加载窗口的消息。示例代码如下:
```vue
<template>
<div id="app">
<!-- 主应用内容 -->
</div>
</template>
<script>
const { ipcRenderer } = require('electron');
export default {
created() {
ipcRenderer.send('close-loading-window', { isClose: true });
}
}
</script>
```
上述代码在 `created` 钩子中向主进程发送 `close-loading-window` 消息,告知主进程关闭加载窗口。
### 主进程监听关闭消息
在主进程中监听 `close-loading-window` 消息,并关闭加载窗口。示例代码如下:
```javascript
const { app, BrowserWindow, ipcMain } = require('electron');
let loadingWindow;
// 创建加载窗口的代码...
ipcMain.on('close-loading-window', (event, arg) => {
if (loadingWindow && arg.isClose) {
loadingWindow.close();
}
});
```
上述代码在主进程中监听 `close-loading-window` 消息,并在接收到消息后关闭加载窗口。
阅读全文
相关推荐



















