技术解析

关于 electron 无边框窗口拖动的问题
0
2021-06-04 01:19:49
idczone
有没有一个比较好的库或者源码,可以实现非 css 样式方式的窗体抗投诉服务器的拖动呢(程序有多个窗体)?
需要至少可以兼容 win,macos
哈哈哈你之前是怎么拖动的?

css 样式,问题多的一批啊

https://www.electronjs.org/docs/api/frameless-window
用这个窗体模式,然后自己 html+css 绘制顶部

那就监听鼠标拖动 js 控制窗口位置

嗯嗯,已经实现了无边框窗体,主要是不想用他自带的 css 样式实现拖动。希望窗口所有位置可以拖动,又不影响所有的 dom 元素的事件响应( css 样式会干扰页面交互事件)。

有没有现成的库或者源码?~

没有
全局 addEventListener 一下鼠标事件 setPosition 移动窗口

类似代码,仅做参考
```
const getSize = debounce(() => {
const win = BrowserWindow.getFocusedWindow()
const [width, height] = win.getSize()
return { win, width, height }
}, 500, {
'leading': true,
'trailing': false
})
ipcMain.on('windowMoving', (e, { mouseX, mouseY }) => {
const { x, y } = screen.getCursorScreenPoint()
const { win, width, height } = getSize()
if (win && !win.isMaximized()) {
win.setBounds({
width,
height,
x: x - mouseX,
y: y - mouseY
})
}
})
```

thanks ! i'll give it a try !

多谢,试试先~

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服