【问题标题】:Hide titlebar on window hover in electron?隐藏窗口悬停在电子上的标题栏?
【发布时间】:2018-11-08 00:44:41
【问题描述】:

好的,所以我希望标题栏不在主窗口内,而是在其顶部有一个栏,当不将鼠标悬停在主窗口或标题栏上时,它会变得透明。

我有一个来自另一个电子应用程序 here 的示例。

那么有没有人知道我怎么能创造出这样的东西?我考虑过创建第二个窗口,但我认为这行不通。但是其他人已经做到了,所以它一定是可能的

【问题讨论】:

    标签: javascript electron titlebar


    【解决方案1】:

    您需要一个透明的无框窗口,带有网格或弹性布局的标题栏和容器区域。

    const {BrowserWindow} = require('electron')
    let win = new BrowserWindow({transparent: true, frame: false})
    win.show()
    

    查看Electron Docs,其中包含有关透明窗口的跨平台提示。

    然后您可以在标题栏上添加或删除一个类以使其出现/消失。标题栏元素应具有 css 属性 -webkit-app-region: drag

    您应该考虑用内容填充该窗口的不可见区域,这也是小动画的完美用例。否则它可能会阻止它后面的应用程序,而用户不知道为什么。否则,您需要通过以下方式手动管理点击转发:

    win.setIgnoreMouseEvents(true)
    

    请查看Electron Docs 关于此事的信息,因为转发可能会变得相当复杂。

    【讨论】:

    • 嘿,谢谢,这已经是我搜索的内容了。但我仍然有一些我无法弄清楚与此相关的东西。我希望你能帮到你: 1. 当使用 jQuery 淡出让它不可见时,body 会 100% 对齐,看起来有点难看。当我只是改变不透明度时,它可以工作,但仍然可以点击。示例:imgur.com/a/SbOh96q 2. 标题栏消失时看起来很难看,是圆角的原因。根据互联网,当它是无框和透明的时,窗口的边缘应该没有半径。我有办法制作硬边吗?
    • 我鼓励你使用 CSS 动画并将它们绑定到标题栏的高度。例如,如果您使用 flexbox,内容将自动调整到适当的高度。 “硬边”指的是普通的,只是去掉了border-radius属性。
    • 好的,我得到了隐藏标题栏的工作。硬边不是常规的。我不是在谈论 div 的边缘,而是实际上是电子窗口的边缘。那些没有边界半径属性,我想改变它。那么我该如何改变呢?感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 2021-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-04
    • 1970-01-01
    相关资源
    最近更新 更多