Commit 943f1ecf authored by 季圣华's avatar 季圣华
Browse files

No commit message

No commit message
parent b796dce5
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>HoorayOS桌面应用框架</title>
<link rel="stylesheet" href="js/HoorayLibs/hooraylibs.css">
<link rel="stylesheet" href="img/ui/index.css">
</head>
<body>
<div class="loading"></div>
<!-- 浏览器升级提示 -->
<div class="update_browser_box">
<div class="update_browser">
<div class="subtitle">您正在使用的IE浏览器版本过低,<br>我们建议您升级或者更换浏览器,以便体验顺畅、兼容、安全的互联网。</div>
<div class="title">选择一款<span></span>浏览器吧</div>
<div class="browser">
<a href="http://windows.microsoft.com/zh-CN/internet-explorer/downloads/ie" class="ie" target="_blank" title="ie浏览器">ie浏览器</a>
<a href="http://www.google.cn/chrome/intl/zh-CN/landing_chrome.html" class="chrome" target="_blank" title="谷歌浏览器">谷歌浏览器</a>
<a href="http://www.firefox.com.cn" class="firefox" target="_blank" title="火狐浏览器">火狐浏览器</a>
<a href="http://www.opera.com" class="opera" target="_blank" title="opera浏览器">opera浏览器</a>
<a href="http://www.apple.com.cn/safari" class="safari" target="_blank" title="safari浏览器">safari浏览器</a>
</div>
<div class="bottomtitle">[&nbsp;<a href="http://www.baidu.com/search/theie6countdown.html" target="_blank">对IE6说再见</a>&nbsp;]</div>
</div>
</div>
<!-- 桌面 -->
<div id="desktop">
<div id="zoom-tip"><div><i></i><span></span></div><a href="javascript:;" class="close" onClick="HROS.zoom.close();">×</a></div>
<div id="desk">
<div id="desk-1" class="desktop-container"><div class="scrollbar scrollbar-x"></div><div class="scrollbar scrollbar-y"></div></div>
<div id="dock-bar">
<div id="dock-container">
<div class="dock-middle">
<div class="dock-applist"></div>
<!-- 任务栏上4个小按钮 -->
<div class="dock-toollist">
<!-- 创建一个临时窗口,多次点击会多次创建,窗口不唯一 -->
<a href="javascript:;" onClick="HROS.window.createTemp({title:'百度',url:'http://hoorayos.com',width:800,height:400,left:100,top:100,isresize:false,isopenmax:false,isflash:false});"><img src="img/ui/dock-tools.png"></a>
<!-- 创建一个临时挂件,多次点击会多次创建,窗口不唯一 -->
<a href="javascript:;" onClick="HROS.widget.createTemp({url:'http://hoorayos.com',width:800,height:400,right:100,top:100});"><img src="img/ui/dock-tools.png"></a>
<!-- 创建一个临时窗口,多次点击不会重复创建,窗口唯一,需要在参数里加上appid属性,内容随便填写,但确保appid唯一,以免与系统窗口重复 -->
<!-- 参数说明:title:标题,url:网址,width:窗口宽度,height:窗口高度 -->
<!-- left:挂件距离页面左部偏移量(可不填,默认0),top:挂件距离页面顶部偏移量(可不填,默认0) -->
<!-- isresize:窗口是否可以拉伸(可不填,默认false),isopenmax:窗口打开是否默认最大化(可不填,默认false),isflash:窗口内是否为flash应用(可不填,默认false) -->
<a href="javascript:;" onClick="HROS.window.createTemp({appid:'window_baidu',title:'百度',url:'hoorayos.com',width:800,height:400,left:100,top:100,isresize:false,isopenmax:false,isflash:false});"><img src="img/ui/dock-tools.png"></a>
<!-- 创建一个临时挂件,多次点击不会重复创建,窗口唯一,需要在参数里加上appid属性,内容随便填写,但确保appid唯一,以免与系统挂件重复 -->
<!-- 参数说明:url:网址,width:窗口宽度,height:窗口高度 -->
<!-- right:挂件距离页面左部偏移量(可不填,默认0),top:挂件距离页面顶部偏移量(可不填,默认0) -->
<a href="javascript:;" onClick="HROS.widget.createTemp({appid:'widget_baidu',url:'hoorayos.com',width:800,height:400,right:100,top:100});"><img src="img/ui/dock-tools.png"></a>
</div>
</div>
</div>
</div>
</div>
<div id="task-bar-bg1"></div>
<div id="task-bar-bg2"></div>
<div id="task-bar">
<div id="task-next"><a href="javascript:;" id="task-next-btn" hidefocus="true"></a></div>
<div id="task-content">
<div id="task-content-inner"></div>
</div>
<div id="task-pre"><a href="javascript:;" id="task-pre-btn" hidefocus="true"></a></div>
</div>
</div>
<script src="js/jquery-1.8.3.min.js"></script>
<script src="js/HoorayLibs/hooraylibs.js"></script>
<script src="js/templates.js"></script>
<script src="js/core.js"></script>
<script src="js/hros.app.js"></script>
<script src="js/hros.base.js"></script>
<script src="js/hros.desktop.js"></script>
<script src="js/hros.dock.js"></script>
<script src="js/hros.grid.js"></script>
<script src="js/hros.maskBox.js"></script>
<script src="js/hros.taskbar.js"></script>
<script src="js/hros.popupMenu.js"></script>
<script src="js/hros.wallpaper.js"></script>
<script src="js/hros.widget.js"></script>
<script src="js/hros.window.js"></script>
<script src="js/hros.zoom.js"></script>
<script>
$(function(){
//IE下禁止选中
document.body.onselectstart = document.body.ondrag = function(){return false;}
//隐藏加载遮罩层
$('.loading').hide();
//IE6,7升级提示
if($.browser.msie && $.browser.version < 8){
if($.browser.version < 7){
//虽然不支持IE6,但还是得修复PNG图片透明的问题
DD_belatedPNG.fix('.update_browser .browser');
}
$('.update_browser_box').show();
}else{
$('#desktop').show();
//初始化一些桌面信息
HROS.CONFIG.wallpaper = 'wallpaper.jpg';
//加载桌面
HROS.base.init();
}
});
</script>
</body>
</html>
\ No newline at end of file
#topcontrol{z-index:999}
#topcontrol a{display:block;width:54px;height:41px;background:url(scrolltotop.gif) no-repeat 0 0}
#topcontrol a:hover{display:block;width:54px;height:41px;background:url(scrolltotop.gif) no-repeat -54px 0}
.zeng_msgbox_layer,
.zeng_msgbox_layer .gtl_ico_succ,
.zeng_msgbox_layer .gtl_ico_fail,
.zeng_msgbox_layer .gtl_ico_hits,
.zeng_msgbox_layer .gtl_ico_clear,
.zeng_msgbox_layer .gtl_end{display:inline-block;height:54px;line-height:54px;font-weight:bold;font-size:14px;color:#606060;background-image:url(gb_tip_layer.png);_background-image:url(gb_tip_layer_ie6.png);background-repeat:no-repeat}
.zeng_msgbox_layer_wrap{width:100%;position:fixed;_position:absolute;top:46%;left:0;text-align:center;z-index:65533}
.zeng_msgbox_layer{background-position:0 -161px;background-repeat:repeat-x;padding:0 18px 0 9px;margin:0 auto;position:relative}
.zeng_msgbox_layer .gtl_ico_succ{background-position:-6px 0;left:-45px;top:0;width:45px;position:absolute}
.zeng_msgbox_layer .gtl_end{background-position:0 0;position:absolute;right:-6px;top:0;width:6px}
.zeng_msgbox_layer .gtl_ico_fail{background-position:-6px -108px;position:absolute;left:-45px;top:0;width:45px}
.zeng_msgbox_layer .gtl_ico_hits{background-position:-6px -54px;position:absolute;left:-45px;top:0;width:45px}
.zeng_msgbox_layer .gtl_ico_clear{background-position:-6px 0;left:-5px;width:5px;position:absolute;top:0}
.zeng_msgbox_layer .gtl_ico_loading{width:16px;height:16px;border:0;background-image:url(gb_tip_loading.gif);float:left;margin:19px 10px 0 5px}
.colorTip{display:none;position:absolute;left:50%;top:-30px;padding:6px;background-color:white;font-family:Arial,Helvetica,sans-serif;font-size:11px;font-style:normal;line-height:1;text-decoration:none;text-align:center;text-shadow:0 0 1px white;white-space:nowrap;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}
.pointyTip,.pointyTipShadow{border:6px solid transparent;bottom:-12px;height:0;left:50%;margin-left:-6px;position:absolute;width:0}
.pointyTipShadow{border-width:7px;bottom:-14px;margin-left:-7px}
.colorTipContainer{position:relative;text-decoration:none!important}
.white .pointyTip{border-top-color:white}
.white .pointyTipShadow{border-top-color:#ddd}
.white .colorTip{background-color:white;border:1px solid #ddd;color:#555}
.yellow .pointyTip{border-top-color:#f9f2ba}
.yellow .pointyTipShadow{border-top-color:#e9d315}
.yellow .colorTip{background-color:#f9f2ba;border:1px solid #e9d315;color:#5b5316}
.blue .pointyTip{border-top-color:#d9f1fb}
.blue .pointyTipShadow{border-top-color:#7fcdee}
.blue .colorTip{background-color:#d9f1fb;border:1px solid #7fcdee;color:#1b475a}
.green .pointyTip{border-top-color:#f2fdf1}
.green .pointyTipShadow{border-top-color:#b6e184}
.green .colorTip{background-color:#f2fdf1;border:1px solid #b6e184;color:#558221}
.red .pointyTip{border-top-color:#bb3b1d}
.red .pointyTipShadow{border-top-color:#8f2a0f}
.red .colorTip{background-color:#bb3b1d;border:1px solid #8f2a0f;color:#fcfcfc;text-shadow:none}
.black .pointyTip{border-top-color:#333}
.black .pointyTipShadow{border-top-color:#111}
.black .colorTip{background-color:#333;border:1px solid #111;color:#fcfcfc;text-shadow:none}
\ No newline at end of file
This diff is collapsed.
/*
** HoorayOS开源桌面应用框架
** 作者:胡尐睿丶
** 地址:http://hoorayos.com
** 我希望能将这项目继续开源下去,所以请手下留情,保留以上这段版权信息,授权用户可删除代码中任何信息
*/
var TEMP = {};
var HROS = {};
HROS.CONFIG = {
appButtonTop : 20, //快捷方式top初始位置
appButtonLeft : 20, //快捷方式left初始位置
windowIndexid : 10000, //窗口z-index初始值
widgetIndexid : 1, //挂件z-index初始值
windowMinWidth : 215, //窗口最小宽度
windowMinHeight : 59, //窗口最小高度
wallpaper : '' //壁纸
};
HROS.VAR = {
zoomLevel : 1,
dock : '',
desk : ''
};
\ No newline at end of file
/*
** 应用
*/
HROS.app = (function(){
return {
/*
** 初始化桌面应用
*/
init : function(){
//绑定应用打开事件
HROS.app.click();
//绑定滚动条拖动事件
HROS.app.moveScrollbar();
HROS.app.get();
},
get : function(){
$.getJSON('../../app/findDesk.action', function (sc) {
HROS.VAR.dock = sc['dock'];
HROS.VAR.desk = sc['desk'];
//输出桌面应用
HROS.app.set();
});
},
/*
** 输出应用
*/
set : function(){
//绘制应用表格
var grid = HROS.grid.getAppGrid(), dockGrid = HROS.grid.getDockAppGrid();
//加载应用码头应用
if(HROS.VAR.dock != ''){
var dock_append = '';
$(HROS.VAR.dock).each(function(i){
dock_append += appbtnTemp({
'top' : dockGrid[i]['startY'],
'left' : dockGrid[i]['startX'],
'title' : this.title,
'type' : this.type,
'id' : 'd_' + this.id,
'appid' : this.id,
'imgsrc' : this.icon
});
});
$('#dock-bar .dock-applist').html('').append(dock_append);
}else{
$('#dock-bar .dock-applist').html('');
}
//加载桌面应用
if(HROS.VAR.desk != ''){
var desk_append = '';
$(HROS.VAR.desk).each(function(i){
desk_append += appbtnTemp({
'top' : grid[i]['startY'] + 7,
'left' : grid[i]['startX'] + 16,
'title' : this.title,
'type' : this.type,
'id' : 'd_' + this.id,
'appid' : this.id,
'imgsrc' : this.icon
});
});
}
$('#desk-1 li').remove();
$('#desk-1').append(desk_append);
HROS.deskTop.appresize();
//加载滚动条
HROS.app.getScrollbar();
},
/*
** 应用打开
*/
click : function(){
//应用码头应用拖动
$('#dock-bar .dock-applist').on('click', 'li', function(e){
e.preventDefault();
e.stopPropagation();
switch($(this).attr('type')){
case 'app':
HROS.window.create($(this).attr('appid'));
break;
case 'widget':
HROS.widget.create($(this).attr('appid'));
break;
}
});
//桌面应用拖动
$('#desktop .desktop-container').on('click', 'li:not(.add)', function(e){
e.preventDefault();
e.stopPropagation();
switch($(this).attr('type')){
case 'app':
HROS.window.create($(this).attr('appid'));
break;
case 'widget':
HROS.widget.create($(this).attr('appid'));
break;
}
});
},
/*
** 加载滚动条
*/
getScrollbar : function(){
setTimeout(function(){
$('#desk .desktop-container').each(function(){
var desk = $(this), scrollbar = desk.children('.scrollbar');
//先清空所有附加样式
scrollbar.hide();
desk.scrollLeft(0);
var deskW = parseInt(desk.children('.appbtn').last().css('left')) + 106;
if(desk.width() / deskW < 1){
desk.children('.scrollbar-x').width(desk.width() / deskW * desk.width()).css('left',0).show();
}
});
}, 500);
},
/*
** 移动滚动条
*/
moveScrollbar : function(){
/*
** 手动拖动
*/
$('#desk .scrollbar').on('mousedown', function(e){
var x, y, cx, cy, deskrealw, deskrealh, movew, moveh;
var scrollbar = $(this), desk = scrollbar.parent('.desktop-container');
deskrealw = parseInt(desk.children('.appbtn').last().css('left')) + 106;
deskrealh = parseInt(desk.children('.appbtn').last().css('top')) + 108;
movew = desk.width() - scrollbar.width();
moveh = desk.height() - scrollbar.height();
if(scrollbar.hasClass('scrollbar-x')){
x = e.clientX - scrollbar.offset().left;
}else{
y = e.clientY - scrollbar.offset().top;
}
$(document).on('mousemove', function(e){
if(scrollbar.hasClass('scrollbar-x')){
cx = e.clientX - x - 73 < 0 ? 0 : e.clientX - x - 73 > movew ? movew : e.clientX - x - 73;
scrollbar.css('left', cx / desk.width() * deskrealw + cx);
desk.scrollLeft(cx / desk.width() * deskrealw);
}else{
cy = e.clientY - y < 0 ? 0 : e.clientY - y > moveh ? moveh : e.clientY - y;
scrollbar.css('top', cy / desk.height() * deskrealh + cy);
desk.scrollTop(cy / desk.height() * deskrealh);
}
}).on('mouseup', function(){
$(this).off('mousemove').off('mouseup');
});
});
/*
** 鼠标滚动
*/
$('#desk .desktop-container').each(function(i){
$('#desk-' + (i + 1)).on('mousewheel', function(event, delta){
var desk = $(this);
var deskrealw = parseInt(desk.children('.appbtn').last().css('left')) + 106, scrollleftright;
if(delta < 0){
scrollleftright = desk.scrollLeft() + 200 > deskrealw - desk.width() ? deskrealw - desk.width() : desk.scrollLeft() + 200;
}else{
scrollleftright = desk.scrollLeft() - 200 < 0 ? 0 : desk.scrollLeft() - 200;
}
desk.stop(false, true).animate({scrollLeft : scrollleftright}, 300);
desk.children('.scrollbar-x').stop(false, true).animate({
left : scrollleftright / deskrealw * desk.width() + scrollleftright
}, 300);
});
});
}
}
})();
\ No newline at end of file
/*
** 一个不属于其他模块的模块
*/
HROS.base = (function(){
return {
/*
** 系统初始化
*/
init : function(){
//阻止弹出浏览器默认右键菜单
$('body').on('contextmenu', function(){
return false;
});
//用于判断网页是否缩放
HROS.zoom.init();
//桌面(容器)初始化
HROS.deskTop.init();
//初始化壁纸
HROS.wallpaper.init();
//初始化任务栏
HROS.taskbar.init();
/*
** 当dockPos为top时 当dockPos为left时 当dockPos为right时
** ----------------------- ----------------------- -----------------------
** | o o o dock | | o | o | | o | o |
** ----------------------- | o | o | | o | o |
** | o o | | o | o | | o | o |
** | o + | | | o | | o | |
** | o desk | | | o desk | | o desk | |
** | o | | | + | | + | |
** ----------------------- ----------------------- -----------------------
** 因为desk区域的尺寸和定位受dock位置的影响,所以加载应用前必须先定位好dock的位置
*/
//初始化应用码头
HROS.dock.init();
//初始化桌面应用
HROS.app.init();
//初始化widget模块
HROS.widget.init();
//初始化窗口模块
HROS.window.init();
}
}
})();
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment