所有分类
  • 所有分类
  • 后端开发
如何自定义系统 Frame?详细步骤及配置文件设置指南

如何自定义系统 Frame?详细步骤及配置文件设置指南

自定义Frame的第一步是在package.config文件中将frame选项设置为false。修改配置文件之后,我们看到的是下面的窗口。但是不是任何时候,我们都需要最大化的,比如自定义了一个登录窗,我们想保持固定的大小怎么办?先去掉原来用

你懂的,软件刚开打那框框丑陋又无聊,看妹子们怎么笑得出来呢?就像那些破旧的默认边框,真的掉价儿。幸运的是,有许多了不起的程序员正在努力开发牛逼的,更炫酷的窗口框架,让用户眼前一亮,用起软件来就像吃鸡腿一样开心!

从package.config开始

想要个性化你的窗口框架吗?快去看看那个叫做”包.配置文件”的地方!这儿你可以调节很多细节,比如要不要显示工具栏,窗口大小可不可以变啦这些。可是别忘了,一定要把frame设为false,这样才能让你的窗户变成无边框的,整个人都看着舒适多了。不过话说回来,这种没有边框的窗子,拉动起来可能会有些吃力。

无边框窗口的拖拽问题

虽然无边框窗口看起来挺酷,但就是不能拖着挪动,实在有点儿烦。不过,厉害的开发者想出了招——用nw.js优化一下就能有拖动功能!之前的无边框窗户可是双击也没效果,这引来了好多网友的吐槽。后来,作者终于加入了这个拖拉功能。

尝试监听Click事件

先来监听下’Click’那个按钮,看看能不能搞掂拖拽这个功能!然后,我就咚咚咚写出了这段代码:

javascript
当我们点击这个文档的时候,会触发这样一个事件处理程序。
e.preventDefault();
}

装上后感觉还是老样子,我才想起来,原来是nw.js出了点问题。听说0.13版本已经修复好,不过那是测试版。这么看的话,看来我们得换条道走了呀。

如何自定义系统 Frame?详细步骤及配置文件设置指南

自己动手实现拖拽

直接用默认方法搞不定,看来我们要自己上阵!来个Click和MouseMove事件,拖拽功能就搞定咯。简单不?赶快做起来呗!原来的body拖拽效果先丢一边,然后插入我给的这几段代码就OK啦:

var gui = require(‘nw.gui’)

var win = gui.Window.get()

var $win = window

var $nav = document.body;

var dragging = false

如何自定义系统 Frame?详细步骤及配置文件设置指南

点击导航栏会触发这个函数哦——

简单来说,咱看看列表里面有没有类似于 e.target 的“大树”或亲属,比如说在`.navbar-nav`还是`.form-user`的家族成员里?这样就能找到e.target它藏在哪儿!

如何自定义系统 Frame?详细步骤及配置文件设置指南

if (!isbg) return

dragging = true

移动鼠标时,马上会触发下面的函数~

if (!dragging) return

很容易搞定只要将窗口的Y轴位置加上鼠标离屏Y轴的距离,新的Y值就能轻松得出~

$win.onmouseup=function () {

dragging = false

你好好改改,边框去掉后,想怎么拉就怎么拉,现在大家都更方便!

自定义窗口框架的优点

自定窗架挺好的首先,软件用着感觉更舒服呢;接着就是,可以提升操作体验,玩儿得更带劲儿;最后,也能提高应用的竞争力,吸引更多朋友来玩咯。

自定义窗口框架的挑战

搞这个自定义窗口框架可不容易!先要研究懂那个pkg.cfg文件,每个字母的意思都得了解清楚;再就是赶紧找回技术宅的感觉,才能让这个玩意儿运作起来流畅;最后,就是不停地尝试错误,直到你设计出来的界面好用到飞起。

自定义窗口框架的未来

你们看,现在科技进步这么快!将来肯定越来越多的个性化、简单好用的窗口出现。比如,它能根据你用得频率和喜欢自动调整窗口大小;还可以根据你在做什么程序就变脸!这么贴心的设计,以后肯定越来越普遍,就在那里等我们去尝试!

总结

设计窗口框架挺有意思的,能让APP更有个性,用起来也舒服,最重要的是可以提升竞争力。不过说来容易,做起来难得多学多练才成哟! 所以,你想不想动手试试看?快在评论里说说你的想法和经验!别忘了给我点个赞,一起分享!

如何自定义系统 Frame?详细步骤及配置文件设置指南

原文链接:https://www.icz.com/technicalinformation/web/javascript/2024/07/19980.html,转载请注明出处~~~
0

评论0

请先
注意:请收藏好网址www.icz.com,防止失联!站内免费资源持续上传中…!赞助我们
显示验证码
没有账号?注册  忘记密码?