19 Star 34 Fork 0

LeoSun / FSD Javascript Desktop

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

#FSD Javascript Desktop

项目托管地址
Demo地址
Demo地址将在2015年10月29日更新或关闭
特别注意:Demo中的部分WebGL展示页面是第三方的(第五、六、七个应用),效果非常好,但大部分服务器都在国外,国内可能打不开,请自行解决(你懂的)

##关于版权

本项目遵循MIT协议,请知悉。

如您对MIT协议有任何异议,您将无权使用、复制、修改、合并、出版发行、散布、再授权及贩售软体及软体的副本。

本项目img文件夹中的图片(图标和背景图片)来源于网络,仅作演示之用,请各位开发者及时替换删除,勿直接用于商业用途。由于上述图片版权不明,如您发现侵犯了您的版权,请及时联络,我们立即将予以删除。

##说明 项目涉及的主要技术 BackboneJqueryRequireJSUnderscoreAngularJSAmazeUI 项目中部分内容需要请求RESTful数据,因此无法用本地浏览器直接打开,需要配置HTTP静态服务器。

###实现的功能

应用窗口拖拽
应用窗口调整大小
应用窗口通过鼠标实现快速左、右停靠以及最大化(类似于Windows7窗口)
应用窗口随浏览器窗口自适应
背景页面可配置
应用可配置

##项目结构 /bower_components/ 第三方组件文件夹
/css/ 桌面框架用到的CSS文件文件夹
/js/ 桌面框架用到的Javascript脚本文件夹
/img/ 桌面框架用到的图片文件夹
/apps/ 不跨域的子应用文件夹
/system/ 测试用的模拟json数据文件夹
/index.html 项目入口文件

###模型数据 ####/system/application.json

说明
"id": 1015, //应用id
"name": "测试1015",//应用名称
"icon": "./img/zootetragonoides/katongxiaodongwu_15.png",//应用图标URL
"description": "",//描述
"url": "./apps/app001/index.html",//应用链接
"developer":"",//开发者
"version":"",//版本
"uniqueWindow":true,//是否只能打开一个窗口实例
"minHeight":550,//最低高度
"minWidth":512,//最低宽度
"width":512,//宽度
"height":512,//高度
"overflow":false//是否显示纵向滚动条(无横向滚动条)

注意:为保证窗口能随浏览器窗口自适应,且符合逻辑,一般情况下最低宽度不应低于512不高于1024,最低高度不低于40不高于550;宽度和高度不低于最低宽度和高度

####/system/explorer.json

说明
"background_img": "url(img/img0.jpg)",//背景图片(若不设置,背景颜色将会覆盖)
"background_color": "#0CC"//背景颜色

任务栏下面那条白色边框可以去掉,加这条边框的主要目的是为了在Microsoft Windows系统中打开浏览器与任务栏区分开来

###设计思路概要

项目最初设计目标是实现单页面应用(Single Page Application)的功能热插拔。基于对复杂性的要求,最初考虑兼容PC和Pad中的现代浏览器(对于老掉牙的IE,我是拒绝的),然而,当我发现Pad拒绝iframe之后,项目只好拒绝了Pad,事实上,Pad上并不适合窗口化的程序,最多也就是分屏,所以最终只选择兼容了PC现代浏览器。

这个桌面和MicroSoft Windows有一点点像,body下面的explorer元素涵盖了大部分dom结构,包括桌面图标区域和任务栏,任务栏中又包含了左侧的开始菜单元素,中部最小化任务区,以及托盘区。

项目基于Backbone MVC模式,大部分dom结构的改变都是通过监听事件、广播事件触发的,一个事件广播之后,可能会有多个窗口view响应事件,产生改变

###存在的已知问题

JS代码虽然仅有1000余行,但是在短时间内仓促完成,难免有疏漏之处

1.应用窗口打开后,若iframe中的网页与桌面框架处于不同域,将会因禁止跨域而出现刷新按钮不可用
2.应用窗口中打开的网页不能过于庞大,否则将严重影响拖拽性能
3.应用窗口中的网页也应设计为单页面应用,不应使用带有打开新标签页的链接
4.应用窗口中的单页面应用,应设计为自512-1920宽度的响应式网页

###可能会加入的功能

自动全屏(虽然并不难,只是不知道这样做好不好) 开始菜单 桌面框架通用通知中心
应用窗口之间相互调用和通讯(基于Websocket传递事件)
桌面框架通用阻断式弹出窗口
窗口应用路由规范

可能会做一个移动单页面应用功能热插拔解决方案,类似于web版本的ios(然而并不知道有多大意义)

###演示动画(文件较大,加载可能比较慢) image image image

#####about me

个人主页
托管于GAE,大部分地区访问受阻

The MIT License (MIT) Copyright (c) 2015 leosun Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

Javascript桌面 展开 收起
JavaScript
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
JavaScript
1
https://gitee.com/leosun_cn/FSD-Javascript-Desktop.git
git@gitee.com:leosun_cn/FSD-Javascript-Desktop.git
leosun_cn
FSD-Javascript-Desktop
FSD Javascript Desktop
master

搜索帮助