我目前正在使用Node和Electron制作一个屏幕抓取程序。我很快发现,在Electron中使用BrowserWindow可以为我提供一些有用的功能,例如:
mainWindow = new BrowserWindow({
// Width and height are from electron.screen.getPrimaryDisplay()
width: width,
height: height,
show: false,
frame: false,
resizable: false,
alwaysOnTop: true,
skipTaskbar: true,
transparent: true
});
所以我目前的结果看起来像这样: (白色区域是一个覆盖整个屏幕的画布元素)
红色矩形表示用户在其屏幕截图区域进行了标记。
我的问题是,当我开始标记时,不能从y 0-4px和x 0-4px移开。这表示从左到上的4像素根本不起作用(未检测到事件)。此外,在右侧和底部,此偏移量似乎扩展到6px而不是4px。我检测到它的方式:
canvas.addEventListener("mousedown", e => {
dragging = {
startX: e.clientX,
startY: e.clientY
};
});
这对我来说是没有意义的,因为两者的主体都设置为width:100vw和height:100vh,并且画布是全宽和高的,这是我从electronic.screen.getPrimaryDisplay()获得的。
有什么想法为什么事件不会在边缘触发?