- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有什么方法可以在文件 neutralino.config.json 中定位无边框窗口?
like : "borderless": { ...args }
或者其他方式?现在它只是从某个随机的地方开始并且不能移动
最佳答案
您可以在您的 javascript 中调用 Neutralino.window.move(x,y)
。 (0,0) 是屏幕的 (leftmost, top)。您可以在 https://neutralino.js.org/docs/api/window 找到其他窗口函数.
作为您问题的延伸,就像 Klauss A 的直觉所暗示的那样,您可以调用 Neutralino.window.setDraggableRegion('id-of-element')
其中 id-of-element
顾名思义,是 html 中元素的 id。然后,当您单击并拖动该元素时,Neutralino 将自动调用 Neutralino.window.move(x,y)
。 setDraggableRegion()
不在文档中,但您可以在 the tutorial 中看到它他们在 YouTube 上制作,并且仍在代码中。
问题是,Neutralino 是如何做到这一点的,它是通过向服务器发送一条消息,这会增加相当多的延迟,导致拖拽时断时续。以下是 neutralino.js 文件的美化版本中的相关代码片段:
...
t.move = function(e, t) {
return r.request({
url: "window.move",
type: r.RequestType.POST,
isNativeMethod: !0,
data: {
x: e,
y: t
}
})
}, t.setDraggableRegion = function(e) {
return new Promise(((t, i) => {
let r = document.getElementById(e),
o = 0,
u = 0;
function s(e) {
return n(this, void 0, void 0, (function*() {
yield Neutralino.window.move(e.screenX - o, e.screenY - u)
}))
}
r || i(`Unable to find dom element: #${e}`), r.addEventListener("mousedown", (e => {
o = e.clientX, u = e.clientY, r.addEventListener("mousemove", s)
})), r.addEventListener("mouseup", (() => {
r.removeEventListener("mousemove", s)
})), t()
}))
}
...
我怀疑这种表述会增加延迟,因为 function*
是一个生成器,因此本质上是不可信的(需要引用)。我用普通的 javascript 重写了它,并减少了一些延迟。它仍然口吃,只是没有那么多了。
var dragging = false, posX, posY;
var draggableElement = document.getElementById('id-of-element');
draggableElement.onmousedown = function (e) {
posX = e.pageX, posY = e.pageY;
dragging = true;
}
draggableElement.onmouseup = function (e) {
dragging = false;
}
document.onmousemove = function (e) {
if (dragging) Neutralino.window.move(e.screenX - posX, e.screenY - posY);
}
希望对您有所帮助。我一直在研究这一切,因为窗口的标题栏(又名标题栏)与我系统的颜色主题不同。我想,“也许我会在 HTML 中创建自己的标题栏,并使用 CSS 样式来匹配我的应用程序。”但由于卡顿问题,我发现最好有一个不匹配任何内容的 native 可拖动标题栏。我仍在挖掘 Neutralino C++ code看看我是否可以修改它并添加一个非客户端呈现消息处理程序(在 Windows 上),使标题栏的颜色与我的应用程序相同,并且仍然可以平滑拖动。这样它看起来“无边界”但仍然可以移动。
关于neutralinojs - 在 neutralino.js 中定位无边框窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67971689/
有一些内容是由一个使用命令打开 neutralino 应用程序的程序提供的。例如,我想在运行时将我的自定义命令行参数传递给 neutralino 应用程序; neu run -- --serv=127
我使用一个网页来创建一个带有 javascript 的 xml 文件。 我想用中立的js将xml字符串写入我计算机上特定目录中的文件中。 是否可以打开文件保护浏览器或直接在代码中指定将保存的文件的路径
这是用于编写 JSON 的 NeutralinoJS 存储 API。是否可以更新 JSON 文件(推送数据),而不仅仅是用新的 JS 对象覆盖数据。怎么做到的??? // Javascript
如何使用 NeutralinoJS 获取输入文件路径? 我的代码: const inputFilePath = document.getElementById('inputFile').files[
有什么方法可以在文件 neutralino.config.json 中定位无边框窗口? like : "borderless": { ...args } 或者其他方式?现在它只是从某个随机的地方开始并
我已经使用 Electron 很多年了,我喜欢这样一个事实,即我可以提供一个前端应用程序,该应用程序具有大量可以捆绑在 dmg 中的后端服务(连接到数据库等)。 不过,Electron 有点重量级,我
我试图使用 Nuetralinojs 在 Windows 上获取网络信息。如何让我的应用程序跨平台?当用户在 Linux 上执行此命令时,我想运行 ifconfig 命令。 我已经在下面发布了我的 H
我是 NeutralinoJS 的新手,我正在尝试我的第一个应用程序,我需要读取一个 json 文件的内容。我正在尝试使用 Neutralino.filesystem.readFile 方法,但它因错
我是 NeutralinoJS 的新手,我正在尝试我的第一个应用程序,我需要读取一个 json 文件的内容。我正在尝试使用 Neutralino.filesystem.readFile 方法,但它因错
我需要创建一个 neutralino+svelte+ts 项目,我注意到它在旧版本 ( neutralino-cli@1.8.1 ) 中是可能的,但在最新版本的 neutralino 中没有描述类似的
我是一名优秀的程序员,十分优秀!