Я сейчас создаю программу для скриншотов, используя Node и Electron.Я быстро обнаружил, что использование BrowserWindow в Electron предоставляет мне полезные функции в форме атрибутов:
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
});
Так что результат, который у меня есть на данный момент, выглядит следующим образом: (Белая область - это элемент canvas, который покрываетвесь экран)
Красный прямоугольник указывает, где пользователь отметил область своего снимка экрана.
Моя проблема заключается в том, что когда я начинаю отмечать, я не могу перейти от y 0-4px и x 0-4px.Это означает, что 4px слева и сверху вообще не работают (событие не обнаружено).Кроме того, справа и снизу это смещение кажется увеличенным до 6 пикселей вместо 4. Способ, которым я его обнаруживаю:
canvas.addEventListener("mousedown", e => {
dragging = {
startX: e.clientX,
startY: e.clientY
};
});
Это не имеет смысла для меня, так как оба тела установлены на ширину: 100vwи высота: 100vh, а холст - полная ширина и высота, которую я получаю из Electron.screen.getPrimaryDisplay ().
Есть идеи, почему событие не запускается по краям?